27 lines
768 B
TypeScript
27 lines
768 B
TypeScript
import React from 'react'
|
|
|
|
type StateContext = boolean
|
|
type ApiContext = (hasNew: boolean) => void
|
|
|
|
const stateContext = React.createContext<StateContext>(false)
|
|
stateContext.displayName = 'HomeBadgeStateContext'
|
|
const apiContext = React.createContext<ApiContext>((_: boolean) => {})
|
|
apiContext.displayName = 'HomeBadgeApiContext'
|
|
|
|
export function Provider({children}: React.PropsWithChildren<{}>) {
|
|
const [state, setState] = React.useState(false)
|
|
return (
|
|
<stateContext.Provider value={state}>
|
|
<apiContext.Provider value={setState}>{children}</apiContext.Provider>
|
|
</stateContext.Provider>
|
|
)
|
|
}
|
|
|
|
export function useHomeBadge() {
|
|
return React.useContext(stateContext)
|
|
}
|
|
|
|
export function useSetHomeBadge() {
|
|
return React.useContext(apiContext)
|
|
}
|