import React from 'react' import * as persisted from '#/state/persisted' type StateContext = string[] | undefined type SetContext = (v: string) => void const stateContext = React.createContext([]) const setContext = React.createContext((_: string) => {}) export function Provider({children}: {children: React.ReactNode}) { const [state, setState] = React.useState() const setStateWrapped = (v: StateContext) => { persisted.write('usedStarterPacks', [...state, v]) setState(prev => [...prev, v]) } React.useEffect(() => { return persisted.onUpdate(() => { setState(persisted.get('usedStarterPack')) }) }, []) return ( {children} ) } export const useUsedStarterPacks = () => React.useContext(stateContext) export const useAddUsedStarterPack = () => React.useContext(setContext)