fix(会员报价): 平台资料面板报价请求增加序号守卫

- usePlatformProfileCenterController.ts:requestMembershipQuote 增加 membershipQuoteRequestRef 令牌,过期响应不再覆盖新报价或提前结束 loading

Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
2026-10-03 14:58:30 +08:00
parent 5361d89639
commit 3a998e15bb
@@ -443,6 +443,7 @@ export function usePlatformProfileCenterController({
const confirmingWechatRechargeOrderRef =
useRef<WechatRechargeOrderLifecycle | null>(null);
const rechargeSubmissionRef = useRef<symbol | null>(null);
const membershipQuoteRequestRef = useRef<symbol | null>(null);
const accountWriteAbortControllerRef = useRef(new AbortController());
const rechargeCenterReadRevisionRef = useRef(0);
const accountLifecycleRevisionRef = useRef(0);
@@ -1356,6 +1357,11 @@ export function usePlatformProfileCenterController({
) {
return;
}
const requestToken = Symbol('profile-membership-quote');
membershipQuoteRequestRef.current = requestToken;
const isLatestQuoteRequest = () =>
isAccountLifecycleCurrent(account) &&
membershipQuoteRequestRef.current === requestToken;
setMembershipQuote(null);
setMembershipQuoteError(null);
setIsLoadingMembershipQuote(true);
@@ -1363,13 +1369,13 @@ export function usePlatformProfileCenterController({
signal: requestSignal,
})
.then((quote) => {
if (!isAccountLifecycleCurrent(account)) {
if (!isLatestQuoteRequest()) {
return;
}
setMembershipQuote(quote);
})
.catch((error: unknown) => {
if (!isAccountLifecycleCurrent(account)) {
if (!isLatestQuoteRequest()) {
return;
}
setMembershipQuoteError(
@@ -1377,7 +1383,7 @@ export function usePlatformProfileCenterController({
);
})
.finally(() => {
if (isAccountLifecycleCurrent(account)) {
if (isLatestQuoteRequest()) {
setIsLoadingMembershipQuote(false);
}
});