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 && (
-
- )}
-