diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index e09fb50..2298c72 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -21,6 +21,20 @@ const getErrorMessage = (error: unknown): string => { return 'Произошла ошибка' } +// Helper to extract insufficient balance error details +const getInsufficientBalanceError = (error: unknown): { required: number; balance: number } | null => { + if (error instanceof AxiosError) { + const detail = error.response?.data?.detail + if (typeof detail === 'object' && detail?.code === 'insufficient_balance') { + return { + required: detail.required || 0, + balance: detail.balance || 0, + } + } + } + return null +} + // Icons const CopyIcon = () => ( @@ -742,11 +756,26 @@ export default function Subscription() { {/* Pause mutation error */} - {pauseMutation.isError && ( -
- {getErrorMessage(pauseMutation.error)} -
- )} + {pauseMutation.isError && (() => { + const balanceError = getInsufficientBalanceError(pauseMutation.error) + if (balanceError) { + const missingAmount = balanceError.required - balanceError.balance + return ( +
+ +
+ ) + } + return ( +
+ {getErrorMessage(pauseMutation.error)} +
+ ) + })()} {/* Paused info or Next charge progress bar */} {subscription.is_daily_paused ? (