fix: add missing balance cache invalidation after mutations

- 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)
This commit is contained in:
Fringg
2026-03-26 10:44:00 +03:00
parent 96ff2585f2
commit 9546e0ffe6
4 changed files with 8 additions and 1 deletions

View File

@@ -158,7 +158,8 @@ export const subscriptionApi = {
}> => { }> => {
const response = await apiClient.post( const response = await apiClient.post(
'/cabinet/subscription/refresh-traffic', '/cabinet/subscription/refresh-traffic',
subscriptionId != null ? { subscription_id: subscriptionId } : undefined, {},
withSubId(subscriptionId),
); );
return response.data; return response.data;
}, },

View File

@@ -57,6 +57,7 @@ export default function RenewSubscription() {
queryClient.invalidateQueries({ queryKey: ['subscription', subId] }); queryClient.invalidateQueries({ queryKey: ['subscription', subId] });
queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] });
queryClient.invalidateQueries({ queryKey: ['renewal-options', subId] }); queryClient.invalidateQueries({ queryKey: ['renewal-options', subId] });
queryClient.invalidateQueries({ queryKey: ['balance'] });
navigate(`/subscriptions/${subId}`, { replace: true }); navigate(`/subscriptions/${subId}`, { replace: true });
}, },
onError: (err: unknown) => { onError: (err: unknown) => {

View File

@@ -302,6 +302,7 @@ export default function Subscription() {
queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] });
queryClient.invalidateQueries({ queryKey: ['devices', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['devices', subscriptionId] });
queryClient.invalidateQueries({ queryKey: ['device-price'] }); queryClient.invalidateQueries({ queryKey: ['device-price'] });
queryClient.invalidateQueries({ queryKey: ['balance'] });
setShowDeviceTopup(false); setShowDeviceTopup(false);
setDevicesToAdd(1); setDevicesToAdd(1);
}, },
@@ -351,6 +352,8 @@ export default function Subscription() {
onSuccess: () => { onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['subscription', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['subscription', subscriptionId] });
queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] }); queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] });
queryClient.invalidateQueries({ queryKey: ['balance'] });
queryClient.invalidateQueries({ queryKey: ['traffic-packages', subscriptionId] });
setShowTrafficTopup(false); setShowTrafficTopup(false);
setSelectedTrafficPackage(null); setSelectedTrafficPackage(null);
}, },

View File

@@ -240,6 +240,8 @@ export default function SubscriptionPurchase() {
onSuccess: () => { onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['subscription', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['subscription', subscriptionId] });
queryClient.invalidateQueries({ queryKey: ['purchase-options', subscriptionId] }); queryClient.invalidateQueries({ queryKey: ['purchase-options', subscriptionId] });
queryClient.invalidateQueries({ queryKey: ['balance'] });
queryClient.invalidateQueries({ queryKey: ['subscriptions-list'] });
navigate('/subscriptions', { replace: true }); navigate('/subscriptions', { replace: true });
}, },
}); });