From 3b7455ac4cfbfdac281d4abee2590c70d3861258 Mon Sep 17 00:00:00 2001 From: Yunus M Date: Mon, 30 Sep 2024 12:41:11 +0530 Subject: [PATCH] fix: wait for licenseData to resolve before the check to show chat support (#6091) --- frontend/src/AppRoutes/index.tsx | 52 +++++++++++++++++--------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/frontend/src/AppRoutes/index.tsx b/frontend/src/AppRoutes/index.tsx index 8400afbde3..846ec02ac4 100644 --- a/frontend/src/AppRoutes/index.tsx +++ b/frontend/src/AppRoutes/index.tsx @@ -12,6 +12,7 @@ import useAnalytics from 'hooks/analytics/useAnalytics'; import { KeyboardHotkeysProvider } from 'hooks/hotkeys/useKeyboardHotkeys'; import { useIsDarkMode, useThemeConfig } from 'hooks/useDarkMode'; import { THEME_MODE } from 'hooks/useDarkMode/constant'; +import useFeatureFlags from 'hooks/useFeatureFlag'; import useGetFeatureFlag from 'hooks/useGetFeatureFlag'; import useLicense, { LICENSE_PLAN_KEY } from 'hooks/useLicense'; import { NotificationProvider } from 'hooks/useNotifications'; @@ -58,23 +59,16 @@ function App(): JSX.Element { const isDarkMode = useIsDarkMode(); - const featureResponse = useGetFeatureFlag((allFlags) => { - const isOnboardingEnabled = - allFlags.find((flag) => flag.name === FeatureKeys.ONBOARDING)?.active || - false; + const isOnboardingEnabled = + useFeatureFlags(FeatureKeys.ONBOARDING)?.active || false; - const isChatSupportEnabled = - allFlags.find((flag) => flag.name === FeatureKeys.CHAT_SUPPORT)?.active || - false; + const isChatSupportEnabled = + useFeatureFlags(FeatureKeys.CHAT_SUPPORT)?.active || false; - const isPremiumSupportEnabled = - allFlags.find((flag) => flag.name === FeatureKeys.PREMIUM_SUPPORT)?.active || - false; - - const showAddCreditCardModal = - !isPremiumSupportEnabled && - !licenseData?.payload?.trialConvertedToSubscription; + const isPremiumSupportEnabled = + useFeatureFlags(FeatureKeys.PREMIUM_SUPPORT)?.active || false; + const featureResponse = useGetFeatureFlag((allFlags) => { dispatch({ type: UPDATE_FEATURE_FLAG_RESPONSE, payload: { @@ -90,16 +84,6 @@ function App(): JSX.Element { setRoutes(newRoutes); } - - if (isLoggedInState && isChatSupportEnabled && !showAddCreditCardModal) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - window.Intercom('boot', { - app_id: process.env.INTERCOM_APP_ID, - email: user?.email || '', - name: user?.name || '', - }); - } }); const isOnBasicPlan = @@ -201,6 +185,26 @@ function App(): JSX.Element { // eslint-disable-next-line react-hooks/exhaustive-deps }, [pathname]); + useEffect(() => { + const showAddCreditCardModal = + !isPremiumSupportEnabled && + !licenseData?.payload?.trialConvertedToSubscription; + + if (isLoggedInState && isChatSupportEnabled && !showAddCreditCardModal) { + window.Intercom('boot', { + app_id: process.env.INTERCOM_APP_ID, + email: user?.email || '', + name: user?.name || '', + }); + } + }, [ + isLoggedInState, + isChatSupportEnabled, + user, + licenseData, + isPremiumSupportEnabled, + ]); + useEffect(() => { if (user && user?.email && user?.userId && user?.name) { try {