From 2ca51e82cd65c74a490644964476ce41db2eaf41 Mon Sep 17 00:00:00 2001 From: Thomas Mees Date: Thu, 10 Aug 2023 11:44:01 +0200 Subject: [PATCH] Add new flag to subscription dash context for PremiumFeaturesLink GitOrigin-RevId: 55c3d00e0e0fdeb5a63cefac3f1c1428ce01cc9a --- .../components/dashboard/premium-features-link.tsx | 7 +++++++ .../components/dashboard/subscription-dashboard.tsx | 2 +- .../context/subscription-dashboard-context.tsx | 9 +++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/services/web/frontend/js/features/subscription/components/dashboard/premium-features-link.tsx b/services/web/frontend/js/features/subscription/components/dashboard/premium-features-link.tsx index f57c0b6a78..b63186b58a 100644 --- a/services/web/frontend/js/features/subscription/components/dashboard/premium-features-link.tsx +++ b/services/web/frontend/js/features/subscription/components/dashboard/premium-features-link.tsx @@ -1,8 +1,15 @@ import { Trans } from 'react-i18next' import getMeta from '../../../../utils/meta' import * as eventTracking from '../../../../infrastructure/event-tracking' +import { useSubscriptionDashboardContext } from '../../context/subscription-dashboard-context' function PremiumFeaturesLink() { + const { hasValidActiveSubscription } = useSubscriptionDashboardContext() + + if (!hasValidActiveSubscription) { + return null + } + const featuresPageVariant = getMeta('ol-splitTestVariants')?.['features-page'] || 'default' diff --git a/services/web/frontend/js/features/subscription/components/dashboard/subscription-dashboard.tsx b/services/web/frontend/js/features/subscription/components/dashboard/subscription-dashboard.tsx index f827d3374d..c363fcb4ed 100644 --- a/services/web/frontend/js/features/subscription/components/dashboard/subscription-dashboard.tsx +++ b/services/web/frontend/js/features/subscription/components/dashboard/subscription-dashboard.tsx @@ -38,7 +38,7 @@ function SubscriptionDashboard() { - {hasDisplayedSubscription && } + {!hasDisplayedSubscription && (hasSubscription ? : )} diff --git a/services/web/frontend/js/features/subscription/context/subscription-dashboard-context.tsx b/services/web/frontend/js/features/subscription/context/subscription-dashboard-context.tsx index f3bb0acceb..f3ab2f3048 100644 --- a/services/web/frontend/js/features/subscription/context/subscription-dashboard-context.tsx +++ b/services/web/frontend/js/features/subscription/context/subscription-dashboard-context.tsx @@ -40,6 +40,7 @@ type SubscriptionDashboardContextValue = { planCode?: string ) => void hasDisplayedSubscription: boolean + hasValidActiveSubscription: boolean institutionMemberships?: Institution[] managedGroupSubscriptions: ManagedGroupSubscription[] memberGroupSubscriptions: MemberGroupSubscription[] @@ -132,6 +133,12 @@ export function SubscriptionDashboardProvider({ managedPublishers?.length > 0 ) + const hasValidActiveSubscription = Boolean( + ['active', 'canceled'].includes(personalSubscription?.recurly?.state) || + institutionMemberships?.length > 0 || + memberGroupSubscriptions?.length > 0 + ) + useEffect(() => { if (!isRecurlyLoaded()) { setRecurlyLoadError(true) @@ -243,6 +250,7 @@ export function SubscriptionDashboardProvider({ handleCloseModal, handleOpenModal, hasDisplayedSubscription, + hasValidActiveSubscription, institutionMemberships, managedGroupSubscriptions, memberGroupSubscriptions, @@ -277,6 +285,7 @@ export function SubscriptionDashboardProvider({ handleCloseModal, handleOpenModal, hasDisplayedSubscription, + hasValidActiveSubscription, institutionMemberships, managedGroupSubscriptions, memberGroupSubscriptions,