add sync mutations for grid items
This commit is contained in:
parent
48121612fc
commit
43f9f37ccc
2 changed files with 94 additions and 0 deletions
|
|
@ -199,3 +199,25 @@ export function useGradeArtifact() {
|
||||||
mutationFn: (input: ArtifactGradeInput) => artifactAdapter.gradeArtifact(input)
|
mutationFn: (input: ArtifactGradeInput) => artifactAdapter.gradeArtifact(input)
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Sync Mutations (Collection -> Grid)
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync grid artifact from collection mutation
|
||||||
|
*
|
||||||
|
* Syncs a grid artifact's properties from its linked collection source.
|
||||||
|
*/
|
||||||
|
export function useSyncGridArtifact() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (params: { id: string; partyShortcode: string }) =>
|
||||||
|
artifactAdapter.syncGridArtifact(params.id),
|
||||||
|
onSuccess: (_data, { partyShortcode }) => {
|
||||||
|
// Invalidate party queries to reflect the synced artifact
|
||||||
|
queryClient.invalidateQueries({ queryKey: ['parties', 'detail', partyShortcode] })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -654,3 +654,75 @@ export function useSwapSummons() {
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Sync Mutations (Collection -> Grid)
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync grid character from collection mutation
|
||||||
|
*
|
||||||
|
* Syncs a grid character's customizations from its linked collection source.
|
||||||
|
*/
|
||||||
|
export function useSyncGridCharacter() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (params: { id: string; partyShortcode: string }) =>
|
||||||
|
gridAdapter.syncCharacter(params.id),
|
||||||
|
onSuccess: (_data, { partyShortcode }) => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: partyKeys.detail(partyShortcode) })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync grid weapon from collection mutation
|
||||||
|
*
|
||||||
|
* Syncs a grid weapon's customizations from its linked collection source.
|
||||||
|
*/
|
||||||
|
export function useSyncGridWeapon() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (params: { id: string; partyShortcode: string }) =>
|
||||||
|
gridAdapter.syncWeapon(params.id),
|
||||||
|
onSuccess: (_data, { partyShortcode }) => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: partyKeys.detail(partyShortcode) })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync grid summon from collection mutation
|
||||||
|
*
|
||||||
|
* Syncs a grid summon's customizations from its linked collection source.
|
||||||
|
*/
|
||||||
|
export function useSyncGridSummon() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (params: { id: string; partyShortcode: string }) =>
|
||||||
|
gridAdapter.syncSummon(params.id),
|
||||||
|
onSuccess: (_data, { partyShortcode }) => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: partyKeys.detail(partyShortcode) })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync all party items from collection mutation
|
||||||
|
*
|
||||||
|
* Syncs all linked grid items in a party from their collection sources.
|
||||||
|
*/
|
||||||
|
export function useSyncAllPartyItems() {
|
||||||
|
const queryClient = useQueryClient()
|
||||||
|
|
||||||
|
return createMutation(() => ({
|
||||||
|
mutationFn: (params: { partyId: string; partyShortcode: string }) =>
|
||||||
|
gridAdapter.syncAllPartyItems(params.partyId),
|
||||||
|
onSuccess: (_data, { partyShortcode }) => {
|
||||||
|
queryClient.invalidateQueries({ queryKey: partyKeys.detail(partyShortcode) })
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue