T
Join ServertRPC
โ-help
setMutationDefaults for optimistic updates
I have a
Now that I'm adding more and more instances where I need to use the
Is this not working in tRPC wrapper because it's not setting the
preferences
router, with a get
query and a set
mutation. I had optimistic updates set up in the onSuccess of the useMutation hook, wherever I used it, like this:const preferences = api.preferences.get.useQuery();
const savePreferences = api.preferences.set.useMutation({
onSuccess: v =>
queryClient.setQueryData(
getQueryKey(api.preferences.get, undefined, 'query'),
v
)
});
Now that I'm adding more and more instances where I need to use the
set
endpoint, I don't want to copy paste the onSuccess
for optimistic updates. There is the setMutationDefaults
function of query client that would be ideal for this but it isn't working.queryClient.setMutationDefaults(getQueryKey(api.preferences.set), {
onSuccess: v =>
queryClient.setQueryData(
getQueryKey(api.preferences.get, undefined, 'query'),
v
)
})
Is this not working in tRPC wrapper because it's not setting the
mutationKey
or am I doing something wrong? Like I could make a wrapper hook for this mutation but using these defaults seems to me like much cleaner solution.Hmm I found this closed issue https://github.com/trpc/trpc/pull/3528
I guess the adding of
I guess the adding of
mutationKey
was forgotten about?After some investigation, turns out that for whatever reason,
onSettled
and onMutate
work just fine. onSettled
works only if I directly put it into hook call itself.oh I found the culprit
Ok, made a PR with proposed fix ๐ https://github.com/trpc/trpc/pull/4371