@@ -113,16 +113,12 @@ const { hasPermission } = usePermissions();
113113
114114const bulkAttributesUpdateVisible = ref (false );
115115
116- // Helper function for cache invalidation
117- const invalidateMemberCache = async () => {
118- // Small delay to ensure backend operations complete
119- await new Promise ((resolve ) => {
120- setTimeout (resolve, 1000 );
121- });
122-
123- // Use invalidate to let TanStack Query decide when to refetch
124- await queryClient .invalidateQueries ({
116+ // Helper function for reliable data refresh with minimal calls
117+ const refreshMemberData = async () => {
118+ // Direct refetch with stale time 0 - forces fresh data from server
119+ await queryClient .refetchQueries ({
125120 queryKey: [TanstackKey .MEMBERS_LIST ],
121+ stale: true , // Force refetch even if data seems fresh
126122 });
127123};
128124
@@ -230,8 +226,8 @@ const doDestroyAllWithConfirm = () => ConfirmDialog({
230226 // Clear selection immediately to prevent UI issues
231227 selectedMembers .value = [];
232228
233- // Invalidate cache to refresh data
234- await invalidateMemberCache ();
229+ // Refresh data to ensure UI is up to date
230+ await refreshMemberData ();
235231 });
236232
237233const handleDoExport = async () => {
@@ -309,16 +305,16 @@ const doMarkAsTeamMember = async (value) => {
309305 });
310306
311307 return Promise .all (updatePromises)
312- .then (async () => {
308+ .then (() => {
313309 ToastStore .closeAll ();
314310 ToastStore .success (` ${
315311 pluralize (' Person' , selectedMembers .value .length , true )} updated successfully` );
316312
317313 // Clear selection immediately to prevent UI issues
318314 selectedMembers .value = [];
319315
320- // Invalidate cache to refresh data
321- await invalidateMemberCache ();
316+ // Refresh data to ensure UI is up to date
317+ refreshMemberData ();
322318 })
323319 .catch (() => {
324320 ToastStore .closeAll ();
@@ -348,16 +344,16 @@ const doMarkAsBot = async (value) => {
348344 });
349345
350346 return Promise .all (updatePromises)
351- .then (async () => {
347+ .then (() => {
352348 ToastStore .closeAll ();
353349 ToastStore .success (` ${
354350 pluralize (' Person' , selectedMembers .value .length , true )} updated successfully` );
355351
356352 // Clear selection immediately to prevent UI issues
357353 selectedMembers .value = [];
358354
359- // Invalidate cache to refresh data
360- await invalidateMemberCache ();
355+ // Refresh data to ensure UI is up to date
356+ refreshMemberData ();
361357 })
362358 .catch (() => {
363359 ToastStore .closeAll ();
0 commit comments