From 9546e0ffe64ce7bf146c38fa617c6cfb41f67803 Mon Sep 17 00:00:00 2001 From: Fringg Date: Thu, 26 Mar 2026 10:44:00 +0300 Subject: [PATCH] fix: add missing balance cache invalidation after mutations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Subscription.tsx: devicePurchase + trafficPurchase onSuccess → invalidate ['balance'] - RenewSubscription.tsx: renewMutation onSuccess → invalidate ['balance'] - SubscriptionPurchase.tsx: purchaseMutation onSuccess → invalidate ['balance'] + ['subscriptions-list'] - subscription.ts: refreshTraffic uses withSubId (already fixed, formatting) --- src/api/subscription.ts | 3 ++- src/pages/RenewSubscription.tsx | 1 + src/pages/Subscription.tsx | 3 +++ src/pages/SubscriptionPurchase.tsx | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/api/subscription.ts b/src/api/subscription.ts index 3e2162b..529e934 100644 --- a/src/api/subscription.ts +++ b/src/api/subscription.ts @@ -158,7 +158,8 @@ export const subscriptionApi = { }> => { const response = await apiClient.post( '/cabinet/subscription/refresh-traffic', - subscriptionId != null ? { subscription_id: subscriptionId } : undefined, + {}, + withSubId(subscriptionId), ); return response.data; }, diff --git a/src/pages/RenewSubscription.tsx b/src/pages/RenewSubscription.tsx index 8d2ede2..8dded97 100644 --- a/src/pages/RenewSubscription.tsx +++ b/src/pages/RenewSubscription.tsx @@ -57,6 +57,7 @@ export default function RenewSubscription() { queryClient.invalidateQueries({ queryKey: ['subscription', subId] }); queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); queryClient.invalidateQueries({ queryKey: ['renewal-options', subId] }); + queryClient.invalidateQueries({ queryKey: ['balance'] }); navigate(`/subscriptions/${subId}`, { replace: true }); }, onError: (err: unknown) => { diff --git a/src/pages/Subscription.tsx b/src/pages/Subscription.tsx index b3e5664..d1e70d0 100644 --- a/src/pages/Subscription.tsx +++ b/src/pages/Subscription.tsx @@ -302,6 +302,7 @@ export default function Subscription() { queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); queryClient.invalidateQueries({ queryKey: ['devices', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['device-price'] }); + queryClient.invalidateQueries({ queryKey: ['balance'] }); setShowDeviceTopup(false); setDevicesToAdd(1); }, @@ -351,6 +352,8 @@ export default function Subscription() { onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['subscription', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); + queryClient.invalidateQueries({ queryKey: ['balance'] }); + queryClient.invalidateQueries({ queryKey: ['traffic-packages', subscriptionId] }); setShowTrafficTopup(false); setSelectedTrafficPackage(null); }, diff --git a/src/pages/SubscriptionPurchase.tsx b/src/pages/SubscriptionPurchase.tsx index 97e8815..13d29f9 100644 --- a/src/pages/SubscriptionPurchase.tsx +++ b/src/pages/SubscriptionPurchase.tsx @@ -240,6 +240,8 @@ export default function SubscriptionPurchase() { onSuccess: () => { queryClient.invalidateQueries({ queryKey: ['subscription', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['purchase-options', subscriptionId] }); + queryClient.invalidateQueries({ queryKey: ['balance'] }); + queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); navigate('/subscriptions', { replace: true }); }, });