Memoize context value (#3786)

zio/stable
dan 2024-05-01 05:35:52 +01:00 committed by GitHub
parent 31cb3e5422
commit 181e61bedb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 8 deletions

View File

@ -34,10 +34,17 @@ export function createPortalGroup() {
setOutlet(<>{Object.values(map.current)}</>)
}, [])
const contextValue = React.useMemo(
() => ({
outlet,
append,
remove,
}),
[outlet, append, remove],
)
return (
<Context.Provider value={{outlet, append, remove}}>
{props.children}
</Context.Provider>
<Context.Provider value={contextValue}>{props.children}</Context.Provider>
)
}

View File

@ -1,5 +1,6 @@
import React from 'react'
import {InterpretedLabelValueDefinition, AppBskyLabelerDefs} from '@atproto/api'
import {AppBskyLabelerDefs, InterpretedLabelValueDefinition} from '@atproto/api'
import {useLabelDefinitionsQuery} from '../queries/preferences'
interface StateContext {
@ -13,10 +14,7 @@ const stateContext = React.createContext<StateContext>({
})
export function Provider({children}: React.PropsWithChildren<{}>) {
const {labelDefs, labelers} = useLabelDefinitionsQuery()
const state = {labelDefs, labelers}
const state = useLabelDefinitionsQuery()
return <stateContext.Provider value={state}>{children}</stateContext.Provider>
}