From 51fc266bc2f77c1c10eb3929783cd432844b3ef3 Mon Sep 17 00:00:00 2001
From: Rebeka Dekany <50901361+rebekadekany@users.noreply.github.com>
Date: Wed, 17 Jun 2026 10:25:35 +0200
Subject: [PATCH] Redirect users without an active subscription to the
subscription page instead of the error page (#34637)
* Redirect freemium users from billing portal routes to subscription page with banner
* Handle null management link and unknown service in subscription redirects
* Move deleted-subscription invoices link inside `getCustomerManagementLink` instead
GitOrigin-RevId: 7122f69e9b8bda6238111f76c15a35135ce5f0ac
---
.../components/dashboard/redirect-alerts.tsx | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/services/web/frontend/js/features/subscription/components/dashboard/redirect-alerts.tsx b/services/web/frontend/js/features/subscription/components/dashboard/redirect-alerts.tsx
index 53856cbd73..4ba7f07f8b 100644
--- a/services/web/frontend/js/features/subscription/components/dashboard/redirect-alerts.tsx
+++ b/services/web/frontend/js/features/subscription/components/dashboard/redirect-alerts.tsx
@@ -1,5 +1,6 @@
import { Trans, useTranslation } from 'react-i18next'
import OLNotification from '@/shared/components/ol/ol-notification'
+import OLButton from '@/shared/components/ol/ol-button'
function RedirectAlerts() {
const queryParams = new URLSearchParams(window.location.search)
@@ -11,6 +12,7 @@ function RedirectAlerts() {
}
let warning
+ let action
if (redirectReason === 'writefull-entitled') {
warning = t('good_news_you_are_already_receiving_this_add_on_via_writefull')
} else if (redirectReason === 'double-buy') {
@@ -27,10 +29,19 @@ function RedirectAlerts() {
)
} else if (redirectReason === 'subscription-paused') {
warning = t('no_add_on_purchase_while_paused')
+ } else if (redirectReason === 'no-active-subscription') {
+ warning = t('your_subscription_has_expired')
+ action = (
+
+ {t('view_your_invoices')}
+
+ )
} else {
return null
}
- return {warning}>} />
+ return (
+ {warning}>} action={action} />
+ )
}
export default RedirectAlerts