import * as React from 'react' import { createContext, useContext, useState } from 'react' type UseClusterRefManagerResult = ReturnType const ClusterRefContext = createContext({ clusterRef: {} as React.MutableRefObject, setClusterRef: () => {}, }) function useClusterRefManager(): { clusterRef: any setClusterRef: React.Dispatch>> } { const [clusterRef, setClusterRef] = useState>( {} as React.MutableRefObject, ) return { clusterRef, setClusterRef } } export const ClusterRefProvider: React.FunctionComponent<{ children?: React.ReactNode }> = ({ children }) => ( {children} ) export const useClusterRef = (): any => { const { clusterRef } = useContext(ClusterRefContext) return clusterRef } export const useSetClusterRef = (): UseClusterRefManagerResult['setClusterRef'] => { const { setClusterRef } = useContext(ClusterRefContext) return setClusterRef }