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; }