@@ -146,7 +146,7 @@ export const FeatureFlagOverrideProvider: React.FC<
146146 const validateMinimumVersion = useCallback (
147147 ( flagKey : string , flagValue : MinimumVersionFlagValue ) => {
148148 if (
149- ! ( process . env . METAMASK_ENVIRONMENT === 'production' ) &&
149+ process . env . METAMASK_ENVIRONMENT !== 'production' &&
150150 ! isMinimumRequiredVersionSupported ( flagValue . minimumVersion )
151151 ) {
152152 toastRef ?. current ?. showToast ( {
@@ -172,42 +172,62 @@ export const FeatureFlagOverrideProvider: React.FC<
172172 /**
173173 * get a specific feature flag value with overrides applied
174174 */
175- const getFeatureFlag = ( key : string ) => {
176- const flag = featureFlags [ key ] ;
177- if ( ! flag ) {
178- return undefined ;
179- }
180-
181- if ( flag . type === 'boolean with minimumVersion' ) {
182- return validateMinimumVersion (
183- flag . key ,
184- flag . value as unknown as MinimumVersionFlagValue ,
185- ) ;
186- }
187-
188- return flag . value ;
189- } ;
175+ const getFeatureFlag = useCallback (
176+ ( key : string ) => {
177+ const flag = featureFlags [ key ] ;
178+ if ( ! flag ) {
179+ return undefined ;
180+ }
181+
182+ if ( flag . type === 'boolean with minimumVersion' ) {
183+ return validateMinimumVersion (
184+ flag . key ,
185+ flag . value as unknown as MinimumVersionFlagValue ,
186+ ) ;
187+ }
188+
189+ return flag . value ;
190+ } ,
191+ [ featureFlags , validateMinimumVersion ] ,
192+ ) ;
190193
191194 const getOverrideCount = useCallback (
192195 ( ) : number => Object . keys ( overrides ) . length ,
193196 [ overrides ] ,
194197 ) ;
195198
196- const contextValue : FeatureFlagOverrideContextType = {
197- featureFlags,
198- originalFlags : rawFeatureFlags ,
199- getFeatureFlag,
200- featureFlagsList,
201- overrides,
202- setOverride,
203- removeOverride,
204- clearAllOverrides,
205- hasOverride,
206- getOverride,
207- getAllOverrides,
208- applyOverrides,
209- getOverrideCount,
210- } ;
199+ const contextValue : FeatureFlagOverrideContextType = useMemo (
200+ ( ) => ( {
201+ featureFlags,
202+ originalFlags : rawFeatureFlags ,
203+ getFeatureFlag,
204+ featureFlagsList,
205+ overrides,
206+ setOverride,
207+ removeOverride,
208+ clearAllOverrides,
209+ hasOverride,
210+ getOverride,
211+ getAllOverrides,
212+ applyOverrides,
213+ getOverrideCount,
214+ } ) ,
215+ [
216+ featureFlags ,
217+ rawFeatureFlags ,
218+ getFeatureFlag ,
219+ featureFlagsList ,
220+ overrides ,
221+ setOverride ,
222+ removeOverride ,
223+ clearAllOverrides ,
224+ hasOverride ,
225+ getOverride ,
226+ getAllOverrides ,
227+ applyOverrides ,
228+ getOverrideCount ,
229+ ] ,
230+ ) ;
211231
212232 return (
213233 < FeatureFlagOverrideContext . Provider value = { contextValue } >
0 commit comments