MCPcopy Create free account
hub / github.com/TanStack/query / useMutationState

Function useMutationState

packages/solid-query/src/useMutationState.ts:51–82  ·  view source on GitHub ↗
(
  options: Accessor<MutationStateOptions<TResult, TMutation>> = () => ({}),
  queryClient?: Accessor<QueryClient>,
)

Source from the content-addressed store, hash-verified

49}
50
51export function useMutationState<
52 TResult = MutationState,
53 TMutation extends Mutation<any, any, any, any> =
54 MutationTypeFromResult<TResult>,
55>(
56 options: Accessor<MutationStateOptions<TResult, TMutation>> = () => ({}),
57 queryClient?: Accessor<QueryClient>,
58): Accessor<Array<TResult>> {
59 const resolveClient = useQueryClientResolver(queryClient)
60 const client = createMemo(() => resolveClient())
61 const mutationCache = createMemo(() => client().getMutationCache())
62
63 const [result, setResult] = createSignal(
64 getResult(mutationCache(), options()),
65 )
66
67 createEffect(() => {
68 const unsubscribe = mutationCache().subscribe(() => {
69 const nextResult = replaceEqualDeep(
70 result(),
71 getResult(mutationCache(), options()),
72 )
73 if (result() !== nextResult) {
74 setResult(nextResult)
75 }
76 })
77
78 onCleanup(unsubscribe)
79 })
80
81 return result
82}

Callers 5

StatesFunction · 0.50
VariablesFunction · 0.50
MutationFunction · 0.50

Calls 8

useQueryClientResolverFunction · 0.90
replaceEqualDeepFunction · 0.90
clientFunction · 0.85
setResultFunction · 0.85
getMutationCacheMethod · 0.80
getResultFunction · 0.70
optionsFunction · 0.50
subscribeMethod · 0.45

Tested by 3

StatesFunction · 0.40
VariablesFunction · 0.40
MutationFunction · 0.40