From b921545106ea638b6390545ee9a0421aa5234ac5 Mon Sep 17 00:00:00 2001 From: SiteRelEnby <125829806+SiteRelEnby@users.noreply.github.com> Date: Mon, 25 May 2026 23:24:57 -0400 Subject: [PATCH] Show re-issue activation link for mobile_push channels too The Re-issue button on the channel detail page only appeared for web_push, so mobile_push channels in pending_registration (notably ones restored by re-import, where the original activation hash/expiry deliberately doesn't ride along) had no way to get a fresh magic link. The backend reissue endpoint already accepts any push type; the frontend gate just needed to match. Same fix covers the consumed-but- unfinished case where the channel stays pending after a redeem half- completes. --- web/src/routes/notifications.$channelId.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web/src/routes/notifications.$channelId.tsx b/web/src/routes/notifications.$channelId.tsx index a04082a..30af9fe 100644 --- a/web/src/routes/notifications.$channelId.tsx +++ b/web/src/routes/notifications.$channelId.tsx @@ -250,8 +250,13 @@ export function NotificationChannelPage() { State: {channel.destination_state.replace("_", " ")} + {/* Re-issue for both web_push and mobile_push: re-imported channels + land in pending_registration with no link, and a token can also + get consumed without setup completing. Backend already accepts + either; the gate just needs to match. */} {channel.destination_state === "pending_registration" && - channel.destination_type === "web_push" && ( + (channel.destination_type === "web_push" || + channel.destination_type === "mobile_push") && (