From 2fa6306e402ed43e9809b026c788f3e5183239aa Mon Sep 17 00:00:00 2001 From: Pearce Date: Wed, 17 Dec 2025 00:00:53 +0100 Subject: [PATCH 1/3] feat: display phishing warning banner production only --- packages/curve-ui-kit/src/hooks/useFeatureFlags.ts | 3 +++ .../src/widgets/Header/PhishingWarningBanner.tsx | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts index 1c6ba86c6e..479993816e 100644 --- a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts +++ b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts @@ -41,3 +41,6 @@ export const useManageSoftLiquidation = useAlphaChannel /** Entire new app containing in-depth analyses for knowledgeable users */ export const useAnalyticsApp = useAlphaChannel + +/** Phishing warning banner only shown in production */ +export const usePhishingBanner = () => defaultReleaseChannel === ReleaseChannel.Stable diff --git a/packages/curve-ui-kit/src/widgets/Header/PhishingWarningBanner.tsx b/packages/curve-ui-kit/src/widgets/Header/PhishingWarningBanner.tsx index d8ffc37c62..f3b82033d6 100644 --- a/packages/curve-ui-kit/src/widgets/Header/PhishingWarningBanner.tsx +++ b/packages/curve-ui-kit/src/widgets/Header/PhishingWarningBanner.tsx @@ -1,3 +1,4 @@ +import { usePhishingBanner } from '@ui-kit/hooks/useFeatureFlags' import { useDismissBanner } from '@ui-kit/hooks/useLocalStorage' import { t } from '@ui-kit/lib/i18n' import { Banner } from '@ui-kit/shared/ui/Banner' @@ -10,10 +11,15 @@ const ONE_MONTH_MS = 30 * 24 * 60 * 60 * 1000 // 30 days in milliseconds * The banner will reappear after one month if dismissed. */ export const PhishingWarningBanner = () => { - const { shouldShowBanner, dismissBanner } = useDismissBanner('phishing-warning-dismissed', ONE_MONTH_MS) + const shouldShowBanner = usePhishingBanner() + const { shouldShowBanner: isNotDismissed, dismissBanner } = useDismissBanner( + 'phishing-warning-dismissed', + ONE_MONTH_MS, + ) return ( - shouldShowBanner && ( + shouldShowBanner && + isNotDismissed && ( Date: Wed, 17 Dec 2025 11:22:16 +0100 Subject: [PATCH 2/3] feat: hide phishing banner on previews --- packages/curve-ui-kit/src/hooks/useFeatureFlags.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts index 479993816e..80b831c7fc 100644 --- a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts +++ b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts @@ -42,5 +42,6 @@ export const useManageSoftLiquidation = useAlphaChannel /** Entire new app containing in-depth analyses for knowledgeable users */ export const useAnalyticsApp = useAlphaChannel -/** Phishing warning banner only shown in production */ -export const usePhishingBanner = () => defaultReleaseChannel === ReleaseChannel.Stable +/** Phishing warning banner shown on localhost and production, but hidden on preview */ +export const usePhishingBanner = () => + process.env.NODE_ENV === 'development' || defaultReleaseChannel === ReleaseChannel.Stable From 9b7e1d576099390ce4588a261af2bd3aa8263d00 Mon Sep 17 00:00:00 2001 From: Pearce Date: Wed, 17 Dec 2025 11:47:55 +0100 Subject: [PATCH 3/3] feat: update phishing banner logic to force display in CI for automated tests --- packages/curve-ui-kit/src/hooks/useFeatureFlags.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts index 80b831c7fc..38abf2b07f 100644 --- a/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts +++ b/packages/curve-ui-kit/src/hooks/useFeatureFlags.ts @@ -42,6 +42,9 @@ export const useManageSoftLiquidation = useAlphaChannel /** Entire new app containing in-depth analyses for knowledgeable users */ export const useAnalyticsApp = useAlphaChannel -/** Phishing warning banner shown on localhost and production, but hidden on preview */ +/** + * Phishing warning banner shown on localhost and production, hidden on preview, + * but forced on in CI so automated tests keep working + */ export const usePhishingBanner = () => - process.env.NODE_ENV === 'development' || defaultReleaseChannel === ReleaseChannel.Stable + process.env.NODE_ENV === 'development' || defaultReleaseChannel === ReleaseChannel.Stable || Boolean(process.env.CI)