|
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> |
|
) |
|
} |
|
|