From 91efe56cc72c76bf8416f2a3f4006054f104915b Mon Sep 17 00:00:00 2001 From: BharathKShetty Date: Mon, 20 Jan 2025 15:49:54 +0530 Subject: [PATCH 1/2] Fix useFeatureFlag behavior for non-existent flags --- packages/framework/esm-react-utils/src/useFeatureFlag.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/framework/esm-react-utils/src/useFeatureFlag.ts b/packages/framework/esm-react-utils/src/useFeatureFlag.ts index 4f2bb23c4..dddf2ffe1 100644 --- a/packages/framework/esm-react-utils/src/useFeatureFlag.ts +++ b/packages/framework/esm-react-utils/src/useFeatureFlag.ts @@ -20,12 +20,11 @@ export function useFeatureFlag(flagName: string) { const { flags } = useStore(featureFlagsStore); useEffect(() => { - if (!flags[flagName]) { - console.error( - `useFeatureFlag: Attempted to get value of non-existent flag "${flagName}". Did you forget to call registerFeatureFlag?`, - ); + if (flags[flagName] === undefined) { + console.warn(`useFeatureFlag: Flag "${flagName}" does not exist. Returning false.`); } }, [flags[flagName]]); - return flags[flagName]?.enabled; + // Return false if flag does not exist or if it's off + return flags[flagName]?.enabled ?? false; } From f98530913314d060dafc5ebbb76eefa597c12a93 Mon Sep 17 00:00:00 2001 From: BharathKShetty Date: Fri, 31 Jan 2025 20:51:51 +0530 Subject: [PATCH 2/2] Removed the warn message --- packages/framework/esm-react-utils/src/useFeatureFlag.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/framework/esm-react-utils/src/useFeatureFlag.ts b/packages/framework/esm-react-utils/src/useFeatureFlag.ts index dddf2ffe1..f6a8a84a8 100644 --- a/packages/framework/esm-react-utils/src/useFeatureFlag.ts +++ b/packages/framework/esm-react-utils/src/useFeatureFlag.ts @@ -19,12 +19,6 @@ import { featureFlagsStore } from '@openmrs/esm-feature-flags'; export function useFeatureFlag(flagName: string) { const { flags } = useStore(featureFlagsStore); - useEffect(() => { - if (flags[flagName] === undefined) { - console.warn(`useFeatureFlag: Flag "${flagName}" does not exist. Returning false.`); - } - }, [flags[flagName]]); - // Return false if flag does not exist or if it's off return flags[flagName]?.enabled ?? false; }