mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-30 02:23:47 +00:00
fix: add purchase-options cache invalidation on balance changes
- WebSocketNotifications: invalidate purchase-options on all 10 balance-affecting events - Dashboard: invalidate purchase-options after trial activation - Balance: invalidate purchase-options after payment return and promocode activation - PromoOffersSection: invalidate purchase-options and balance after promo claim
This commit is contained in:
@@ -116,6 +116,8 @@ export default function PromoOffersSection({ className = '' }: PromoOffersSectio
|
|||||||
queryClient.invalidateQueries({ queryKey: ['promo-offers'] });
|
queryClient.invalidateQueries({ queryKey: ['promo-offers'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['active-discount'] });
|
queryClient.invalidateQueries({ queryKey: ['active-discount'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
setSuccessMessage(result.message);
|
setSuccessMessage(result.message);
|
||||||
setClaimingId(null);
|
setClaimingId(null);
|
||||||
setTimeout(() => setSuccessMessage(null), 5000);
|
setTimeout(() => setSuccessMessage(null), 5000);
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ export default function WebSocketNotifications() {
|
|||||||
});
|
});
|
||||||
// Refresh data
|
// Refresh data
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
@@ -67,6 +68,7 @@ export default function WebSocketNotifications() {
|
|||||||
duration: 5000,
|
duration: 5000,
|
||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
@@ -82,6 +84,7 @@ export default function WebSocketNotifications() {
|
|||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -95,6 +98,7 @@ export default function WebSocketNotifications() {
|
|||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -151,6 +155,7 @@ export default function WebSocketNotifications() {
|
|||||||
duration: 5000,
|
duration: 5000,
|
||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -180,6 +185,7 @@ export default function WebSocketNotifications() {
|
|||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
@@ -195,6 +201,7 @@ export default function WebSocketNotifications() {
|
|||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
@@ -220,6 +227,7 @@ export default function WebSocketNotifications() {
|
|||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -329,6 +337,7 @@ export default function WebSocketNotifications() {
|
|||||||
duration: 8000,
|
duration: 8000,
|
||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['referral-stats'] });
|
queryClient.invalidateQueries({ queryKey: ['referral-stats'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
@@ -375,6 +384,7 @@ export default function WebSocketNotifications() {
|
|||||||
duration: 6000,
|
duration: 6000,
|
||||||
});
|
});
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ export default function Balance() {
|
|||||||
refreshUser();
|
refreshUser();
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
|
|
||||||
showToast({
|
showToast({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -164,6 +165,7 @@ export default function Balance() {
|
|||||||
await refetchBalance();
|
await refetchBalance();
|
||||||
await refreshUser();
|
await refreshUser();
|
||||||
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
queryClient.invalidateQueries({ queryKey: ['transactions'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
}
|
}
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
const axiosError = error as { response?: { data?: { detail?: string } } };
|
const axiosError = error as { response?: { data?: { detail?: string } } };
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ export default function Dashboard() {
|
|||||||
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
queryClient.invalidateQueries({ queryKey: ['subscription'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['trial-info'] });
|
queryClient.invalidateQueries({ queryKey: ['trial-info'] });
|
||||||
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
queryClient.invalidateQueries({ queryKey: ['balance'] });
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['purchase-options'] });
|
||||||
refreshUser();
|
refreshUser();
|
||||||
},
|
},
|
||||||
onError: (error: { response?: { data?: { detail?: string } } }) => {
|
onError: (error: { response?: { data?: { detail?: string } } }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user