From d1198422fe405a4a0f083925b0fc6fef81f8d00c Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sat, 20 Dec 2025 14:07:03 -0800 Subject: [PATCH] use resetQueries for weapon collection mutations prevents item-shifting issues when sort order changes --- src/lib/api/mutations/collection.mutations.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/api/mutations/collection.mutations.ts b/src/lib/api/mutations/collection.mutations.ts index d064fc91..2259ff9d 100644 --- a/src/lib/api/mutations/collection.mutations.ts +++ b/src/lib/api/mutations/collection.mutations.ts @@ -179,6 +179,8 @@ export function useAddWeaponsToCollection() { /** * Update collection weapon mutation + * Uses resetQueries to clear cache and start fresh, avoiding issues where + * items shift between pages after sort-affecting updates (like element changes) */ export function useUpdateCollectionWeapon() { const queryClient = useQueryClient() @@ -187,7 +189,7 @@ export function useUpdateCollectionWeapon() { mutationFn: ({ id, input }: { id: string; input: Partial }) => collectionAdapter.updateWeapon(id, input), onSuccess: () => { - queryClient.invalidateQueries({ queryKey: collectionKeys.weapons() }) + queryClient.resetQueries({ queryKey: collectionKeys.weapons() }) } })) } @@ -201,7 +203,7 @@ export function useRemoveWeaponFromCollection() { return createMutation(() => ({ mutationFn: (id: string) => collectionAdapter.removeWeapon(id), onSuccess: () => { - queryClient.invalidateQueries({ queryKey: collectionKeys.weapons() }) + queryClient.resetQueries({ queryKey: collectionKeys.weapons() }) } })) } @@ -215,7 +217,7 @@ export function useBulkRemoveWeaponsFromCollection() { return createMutation(() => ({ mutationFn: (ids: string[]) => collectionAdapter.removeWeaponsBatch(ids), onSuccess: () => { - queryClient.invalidateQueries({ queryKey: collectionKeys.weapons() }) + queryClient.resetQueries({ queryKey: collectionKeys.weapons() }) } })) }