diff --git a/packages/shared/src/components/PlatformProfileRechargeModal/index.tsx b/packages/shared/src/components/PlatformProfileRechargeModal/index.tsx index 8443044e1..31273ef13 100644 --- a/packages/shared/src/components/PlatformProfileRechargeModal/index.tsx +++ b/packages/shared/src/components/PlatformProfileRechargeModal/index.tsx @@ -371,6 +371,41 @@ function resolveMembershipPlanAction( return { disabled: false, label: '补差升级', mode: 'upgrade' }; } +/** 升级报价的加载 / 失败态;非升级流程不展示报价状态。 */ +function resolveMembershipQuoteErrorState({ + isUpgrade, + error, + isLoading, + onRetry, +}: { + isUpgrade: boolean; + error: string | null; + isLoading: boolean; + onRetry: () => void; +}): ReactNode { + if (!isUpgrade) { + return null; + } + if (error) { + return ( + +
{error}
+ + 重新获取报价 + +
+ ); + } + if (isLoading) { + return ( +
+ 正在获取升级报价… +
+ ); + } + return null; +} + function PlatformMudPointPoolOverview({ center, }: { @@ -1011,23 +1046,12 @@ function PlatformRechargeCheckoutDialog({ ? '按剩余比例补差,保留现有余额,已用点不返还;升级后原刷新日与到期日不变。' : `月度泥点按开通日自然月计期,当期未用完部分到期清零,不结转。当前选择 ${cycleLabel}。` } - errorState={ - isUpgrade && membershipQuoteError ? ( - -
{membershipQuoteError}
- onRequestMembershipQuote(target.plan)} - > - 重新获取报价 - -
- ) : isUpgrade && isLoadingMembershipQuote ? ( -
- 正在获取升级报价… -
- ) : null - } + errorState={resolveMembershipQuoteErrorState({ + isUpgrade, + error: membershipQuoteError, + isLoading: isLoadingMembershipQuote, + onRetry: () => onRequestMembershipQuote(target.plan), + })} /> ); }