From 07ad7f281774808ca974db24f338cc2e54b64c34 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 17 Apr 2025 20:33:11 +0200 Subject: [PATCH] Bugfix/fix upgrade vs. renew subscription button labels (#4549) * Fix upgrade vs. renew subscription button labels --- apps/api/src/app/subscription/subscription.service.ts | 11 ++++++++--- .../src/app/components/header/header.component.html | 10 +++------- .../user-account-membership.html | 10 +++------- apps/client/src/app/pages/pricing/pricing-page.html | 10 +++------- .../lib/interfaces/subscription-offer.interface.ts | 1 + 5 files changed, 18 insertions(+), 24 deletions(-) diff --git a/apps/api/src/app/subscription/subscription.service.ts b/apps/api/src/app/subscription/subscription.service.ts index dc3e5cf59..f95334684 100644 --- a/apps/api/src/app/subscription/subscription.service.ts +++ b/apps/api/src/app/subscription/subscription.service.ts @@ -183,8 +183,8 @@ export class SubscriptionService { }); return { - expiresAt, offer, + expiresAt: isBefore(new Date(), expiresAt) ? expiresAt : undefined, type: isBefore(new Date(), expiresAt) ? SubscriptionType.Premium : SubscriptionType.Basic @@ -210,10 +210,15 @@ export class SubscriptionService { return undefined; } - const offers = + const offers: { + [offer in SubscriptionOfferKey]: SubscriptionOffer; + } = ((await this.propertyService.getByKey(PROPERTY_STRIPE_CONFIG)) as any) ?? {}; - return offers[key]; + return { + ...offers[key], + isRenewal: key.startsWith('renewal') + }; } } diff --git a/apps/client/src/app/components/header/header.component.html b/apps/client/src/app/components/header/header.component.html index 680cc98f0..6cf0ca305 100644 --- a/apps/client/src/app/components/header/header.component.html +++ b/apps/client/src/app/components/header/header.component.html @@ -181,14 +181,10 @@ - @if (user.subscription.offer === 'default') { - Upgrade Plan - } @else if ( - user.subscription.offer === 'renewal' || - user.subscription.offer === 'renewal-early-bird-2023' || - user.subscription.offer === 'renewal-early-bird-2024' - ) { + @if (user.subscription.offer.isRenewal) { Renew Plan + } @else { + Upgrade Plan } - @if (user.subscription.offer === 'default') { - Upgrade Plan - } @else if ( - user.subscription.offer === 'renewal' || - user.subscription.offer === 'renewal-early-bird-2023' || - user.subscription.offer === 'renewal-early-bird-2024' - ) { + @if (user.subscription.offer.isRenewal) { Renew Plan + } @else { + Upgrade Plan } @if (price) { diff --git a/apps/client/src/app/pages/pricing/pricing-page.html b/apps/client/src/app/pages/pricing/pricing-page.html index b165d5c23..d26a2e11e 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.html +++ b/apps/client/src/app/pages/pricing/pricing-page.html @@ -306,14 +306,10 @@ mat-flat-button (click)="onCheckout()" > - @if (user.subscription.offer === 'default') { - Upgrade Plan - } @else if ( - user.subscription.offer === 'renewal' || - user.subscription.offer === 'renewal-early-bird-2023' || - user.subscription.offer === 'renewal-early-bird-2024' - ) { + @if (user.subscription.offer.isRenewal) { Renew Plan + } @else { + Upgrade Plan }

diff --git a/libs/common/src/lib/interfaces/subscription-offer.interface.ts b/libs/common/src/lib/interfaces/subscription-offer.interface.ts index 9ffe96a58..a9ebb54f4 100644 --- a/libs/common/src/lib/interfaces/subscription-offer.interface.ts +++ b/libs/common/src/lib/interfaces/subscription-offer.interface.ts @@ -4,6 +4,7 @@ export interface SubscriptionOffer { coupon?: number; couponId?: string; durationExtension?: StringValue; + isRenewal?: boolean; label?: string; price: number; priceId: string;