import type { UseCallbackStateReturnType, UseCallbackStateSetter } from 'mixlea-hooks-react'; import { useCallbackState } from 'mixlea-hooks-react'; import type { PropsWithChildren } from 'react'; import { createContext, useContext } from 'react'; // State const StateContext = createContext>([undefined, () => Promise.resolve(undefined)]); function StateProvider({ children }: PropsWithChildren) { const callbackState = useCallbackState(undefined); return {children}; } // SetState const SetStateContext = createContext>(() => Promise.resolve(undefined)); function SetStateProvider({ children }: PropsWithChildren) { const [, setState] = useContext(StateContext); return {children}; } // Provider function LoaderDataProvider({ children }: PropsWithChildren) { return ( {children} ); } // Hooks const useLoaderDataState = () => { const [loaderData] = useContext(StateContext); return loaderData; }; const useSetLoaderData = () => { const setLoaderData = useContext(SetStateContext); return setLoaderData; }; export { LoaderDataProvider, useLoaderDataState, useSetLoaderData };