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

Function useMutationState

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

Source from the content-addressed store, hash-verified

122 * ```
123 */
124export function useMutationState<
125 TResult = MutationState,
126 TMutation extends Mutation<any, any, any, any> =
127 MutationTypeFromResult<TResult>,
128>(
129 options: Accessor<MutationStateOptions<TResult, TMutation>> = () => ({}),
130 queryClient?: Accessor<QueryClient>,
131): Accessor<Array<TResult>> {
132 const resolveClient = useQueryClientResolver(queryClient)
133 const client = createMemo(() => resolveClient())
134 const mutationCache = createMemo(() => client().getMutationCache())
135
136 const [result, setResult] = createSignal(
137 getResult(mutationCache(), options()),
138 )
139
140 createEffect(() => {
141 const unsubscribe = mutationCache().subscribe(() => {
142 const nextResult = replaceEqualDeep(
143 result(),
144 getResult(mutationCache(), options()),
145 )
146 if (result() !== nextResult) {
147 setResult(nextResult)
148 }
149 })
150
151 onCleanup(unsubscribe)
152 })
153
154 return result
155}

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