import type { ReactNode } from 'react'; import { createContext, useContext, useMemo, useState } from 'react'; interface ShareDataState { data: T | null; setData: (data: T) => void; } const ShareDataContext = createContext | null>(null); export function useShareData(): ShareDataState { const context = useContext(ShareDataContext) as ShareDataState; if (!context) { throw new Error('useShareData must be used within an ShareDataProvider'); } return context; } export function ShareDataProvider({ children }: { children: ReactNode }) { const [data, setData] = useState(null); const state = useMemo(() => { return { data, setData, }; }, [data]); return ( {children} ); }