diff --git a/src/api/gift.ts b/src/api/gift.ts index a4fa67a..c96c180 100644 --- a/src/api/gift.ts +++ b/src/api/gift.ts @@ -74,6 +74,7 @@ export interface GiftPurchaseStatus { gift_message: string | null; tariff_name: string | null; period_days: number | null; + warning: string | null; } export interface PendingGift { diff --git a/src/pages/GiftResult.tsx b/src/pages/GiftResult.tsx index 191ff5a..6193e16 100644 --- a/src/pages/GiftResult.tsx +++ b/src/pages/GiftResult.tsx @@ -355,8 +355,8 @@ export default function GiftResult() { const [searchParams] = useSearchParams(); const token = searchParams.get('token'); const mode = searchParams.get('mode'); - const rawWarning = searchParams.get('warning'); - const warning = rawWarning && KNOWN_WARNINGS.has(rawWarning) ? rawWarning : null; + const rawUrlWarning = searchParams.get('warning'); + const urlWarning = rawUrlWarning && KNOWN_WARNINGS.has(rawUrlWarning) ? rawUrlWarning : null; const pollStart = useRef(Date.now()); const [pollTimedOut, setPollTimedOut] = useState(false); @@ -415,6 +415,11 @@ export default function GiftResult() { const isPendingActivation = status?.status === 'pending_activation'; const isFailed = status?.status === 'failed' || status?.status === 'expired'; + // Warning from status response (persisted on purchase) takes priority over URL param + const statusWarning = + status?.warning && KNOWN_WARNINGS.has(status.warning) ? status.warning : null; + const warning = statusWarning ?? urlWarning; + return (
- {isError && isBalanceMode ? ( + {isError ? ( - ) : isError ? ( - ) : isDelivered ? (