diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index 475e75a..1018fad 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -31,13 +31,18 @@ const getErrorMessage = (error: unknown): string => { // Helper to extract insufficient balance error details const getInsufficientBalanceError = ( error: unknown, -): { required: number; balance: number } | null => { +): { required: number; balance: number; missingAmount?: number } | null => { if (error instanceof AxiosError) { const detail = error.response?.data?.detail; - if (typeof detail === 'object' && detail?.code === 'insufficient_balance') { + // Support both 'insufficient_balance' and 'insufficient_funds' codes + if ( + typeof detail === 'object' && + (detail?.code === 'insufficient_balance' || detail?.code === 'insufficient_funds') + ) { return { - required: detail.required || 0, + required: detail.required || detail.total_price || 0, balance: detail.balance || 0, + missingAmount: detail.missing_amount || detail.missingAmount || 0, }; } } @@ -2118,7 +2123,7 @@ export default function Subscription() { - {tariffPurchaseMutation.isError && ( -
- {getErrorMessage(tariffPurchaseMutation.error)} -
- )} + {tariffPurchaseMutation.isError && + !getInsufficientBalanceError(tariffPurchaseMutation.error) && ( +
+ {getErrorMessage(tariffPurchaseMutation.error)} +
+ )} + {tariffPurchaseMutation.isError && + getInsufficientBalanceError(tariffPurchaseMutation.error) && ( +
+ +
+ )} ); })()} @@ -2540,17 +2559,9 @@ export default function Subscription() { - {purchaseOptions && !hasEnoughBalance && ( - - )} -