use resetQueries for weapon collection mutations

prevents item-shifting issues when sort order changes
This commit is contained in:
Justin Edmund 2025-12-20 14:07:03 -08:00
parent 574454936c
commit d1198422fe

View file

@ -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<CollectionWeaponInput> }) =>
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() })
}
}))
}