Bluesky app fork with some witchin' additions 💫

Memoize context value (#3786)

authored by danabra.mov and committed by

GitHub 181e61be 31cb3e54

+13 -8
+10 -3
src/components/Portal.tsx
··· 34 34 setOutlet(<>{Object.values(map.current)}</>) 35 35 }, []) 36 36 37 + const contextValue = React.useMemo( 38 + () => ({ 39 + outlet, 40 + append, 41 + remove, 42 + }), 43 + [outlet, append, remove], 44 + ) 45 + 37 46 return ( 38 - <Context.Provider value={{outlet, append, remove}}> 39 - {props.children} 40 - </Context.Provider> 47 + <Context.Provider value={contextValue}>{props.children}</Context.Provider> 41 48 ) 42 49 } 43 50
+3 -5
src/state/preferences/label-defs.tsx
··· 1 1 import React from 'react' 2 - import {InterpretedLabelValueDefinition, AppBskyLabelerDefs} from '@atproto/api' 2 + import {AppBskyLabelerDefs, InterpretedLabelValueDefinition} from '@atproto/api' 3 + 3 4 import {useLabelDefinitionsQuery} from '../queries/preferences' 4 5 5 6 interface StateContext { ··· 13 14 }) 14 15 15 16 export function Provider({children}: React.PropsWithChildren<{}>) { 16 - const {labelDefs, labelers} = useLabelDefinitionsQuery() 17 - 18 - const state = {labelDefs, labelers} 19 - 17 + const state = useLabelDefinitionsQuery() 20 18 return <stateContext.Provider value={state}>{children}</stateContext.Provider> 21 19 } 22 20