Resolve account subscription sync state

This commit is contained in:
2569718930@qq.com
2026-06-14 05:28:48 +08:00
parent 0084235b57
commit e783f35a4f
4 changed files with 60 additions and 1 deletions
@@ -6,6 +6,7 @@ import type { User } from "@supabase/supabase-js";
import {
buildAuthMePath,
mergeAccountAuthSnapshot,
shouldResolveAccountUnknownWithFullProfile,
} from "@/lib/auth-snapshot";
import { getSupabaseBrowserClient } from "@/lib/supabase/client";
@@ -244,9 +245,19 @@ export function useAccountPayment(params: UseAccountPaymentParams) {
// an unauthenticated backend snapshot as a temporary sync state.
}
}
let resolvedWithFullProfile = false;
if (shouldResolveAccountUnknownWithFullProfile(backendJson, Boolean(localUser))) {
try {
backendJson = await readAuthSnapshot(latestHeaders);
resolvedWithFullProfile = true;
} catch {
// Keep the explicit unknown state only when the full account profile
// cannot be read; the refresh button can retry the same path.
}
}
setBackend((previous) => mergeAccountAuthSnapshot(previous, backendJson));
setUpdatedAt(new Date().toISOString());
if (backendJson.authenticated !== false) {
if (backendJson.authenticated !== false && !resolvedWithFullProfile) {
void readAuthSnapshot(latestHeaders)
.then((fullJson) => {
setBackend((previous) =>