import React, { createContext, forwardRef, useContext, useImperativeHandle, useState } from 'react'; import { RoutesImperativeHandle, RoutesProviderInnerProps, RoutesWidgetProps, } from '@/hooks/Mapper/components/mapInterface/widgets/RoutesWidget/types.ts'; type MapProviderProps = { children: React.ReactNode; } & RoutesWidgetProps; const RoutesContext = createContext({ update: () => {}, // @ts-ignore data: {}, }); export const RoutesProvider = forwardRef(({ children, ...props }, ref) => { const [loading, setLoading] = useState(false); useImperativeHandle(ref, () => ({ stopLoading() { setLoading(false); }, })); return {children}; }); RoutesProvider.displayName = 'RoutesProvider'; export const useRouteProvider = () => { const context = useContext(RoutesContext); return context; };