refactor(subscription): tighten payment flow boundaries

This commit is contained in:
2026-06-30 15:36:49 +08:00
parent 61504050e5
commit 218df59345
9 changed files with 640 additions and 286 deletions
+28
View File
@@ -0,0 +1,28 @@
"use client";
import { ROUTES } from "@/router/routes";
import { consumePendingChatImageReturn } from "./chat_image_return_session";
export type SubscriptionReturnTo = "chat" | null;
export function consumeSubscriptionExplicitExitUrl(): string | null {
const pendingImageReturn = consumePendingChatImageReturn();
if (pendingImageReturn) return pendingImageReturn.returnUrl;
return null;
}
export function getSubscriptionFallbackExitUrl(
returnTo: SubscriptionReturnTo,
): string {
return returnTo === "chat" ? ROUTES.chat : ROUTES.sidebar;
}
export function consumeSubscriptionExitUrl(
returnTo: SubscriptionReturnTo,
): string {
return (
consumeSubscriptionExplicitExitUrl() ??
getSubscriptionFallbackExitUrl(returnTo)
);
}