import { createContext, ReactNode, useContext, useState } from 'react'; type ContextType = { value: T; setValue: (newValue: T) => void; }; export const createGenericContext = () => { const context = createContext | undefined>(undefined); const Provider = ({ children, initialValue }: { children: ReactNode; initialValue: T }) => { const [value, setValue] = useState(initialValue); return {children}; }; const useContextValue = () => { const contextValue = useContext(context); if (!contextValue) { throw new Error('useContextValue must be used within a Provider'); } return contextValue; }; return { Provider, useContextValue }; };