| import { | |
| createContext, | |
| useRef, | |
| } from 'react' | |
| import type { | |
| FeaturesState, | |
| FeaturesStore, | |
| } from './store' | |
| import { createFeaturesStore } from './store' | |
| export const FeaturesContext = createContext<FeaturesStore | null>(null) | |
| type FeaturesProviderProps = { | |
| children: React.ReactNode | |
| } & Partial<FeaturesState> | |
| export const FeaturesProvider = ({ children, ...props }: FeaturesProviderProps) => { | |
| const storeRef = useRef<FeaturesStore>() | |
| if (!storeRef.current) | |
| storeRef.current = createFeaturesStore(props) | |
| return ( | |
| <FeaturesContext.Provider value={storeRef.current}> | |
| {children} | |
| </FeaturesContext.Provider> | |
| ) | |
| } | |