Peform
Peform
TtRPC
Created by Peform on 10/13/2024 in #❓-help
onSuccess mutation not being called
Hey, I have this mutation which is called when I click a button. Inside the onSuccess callback I show a toast to the user telling them that the request was successful. However, when I do a state change before I call the mutation, eg setRequests the onSuccess callback never runs, I know this because the console log never appears. But, when I remove the setRequests it does, there is no visible error in my console. Why does this happen? Is it by design?
export const GenerationsCard = ({ generation, selectedFlag, setRequests }: Props) => {
const clearMutation = api.generations.clear.useMutation();
const warnMutation = api.punishments.warn.useMutation();
const banMutation = api.punishments.ban.useMutation();

const handleBanGeneration = async (requestId: string, requestType: string) => {
setRequests((prev) => prev?.filter((req) => req.id !== requestId));
await banMutation.mutateAsync(
{ requestId, requestType },
{
onSuccess: (response) => {
console.log(234243243);
toast('Success', {
description: response.message,
action: {
label: 'Undo',
onClick: () => console.log('Undo'),
},
});
},
onError: (error) => {},
},
);
};
export const GenerationsCard = ({ generation, selectedFlag, setRequests }: Props) => {
const clearMutation = api.generations.clear.useMutation();
const warnMutation = api.punishments.warn.useMutation();
const banMutation = api.punishments.ban.useMutation();

const handleBanGeneration = async (requestId: string, requestType: string) => {
setRequests((prev) => prev?.filter((req) => req.id !== requestId));
await banMutation.mutateAsync(
{ requestId, requestType },
{
onSuccess: (response) => {
console.log(234243243);
toast('Success', {
description: response.message,
action: {
label: 'Undo',
onClick: () => console.log('Undo'),
},
});
},
onError: (error) => {},
},
);
};
1 replies
TtRPC
Created by Peform on 8/7/2024 in #❓-help
useQuery `onSuccess` callback depreciated
Hello. I've just found out that the onSuccess callback in useQuery has been depreciated. What should I be using instead?
This callback will fire any time the query successfully fetches new data.

@deprecated — This callback will be removed in the next major version.
This callback will fire any time the query successfully fetches new data.

@deprecated — This callback will be removed in the next major version.
const {
data: fetchedUserData,
refetch: refetchUserData,
isFetching: fetchingUserData,
} = api.userLookup.find.useQuery(
{
userId: form.getValues("userId"),
},
{
enabled: !!form.getValues("userId"),
onSuccess: (data) => { // depreciated
setUserData(data);
}
},
);
const {
data: fetchedUserData,
refetch: refetchUserData,
isFetching: fetchingUserData,
} = api.userLookup.find.useQuery(
{
userId: form.getValues("userId"),
},
{
enabled: !!form.getValues("userId"),
onSuccess: (data) => { // depreciated
setUserData(data);
}
},
);
5 replies
TtRPC
Created by Peform on 6/6/2024 in #❓-help
TRPC response data changing to undefined when typing in a form field.
Hello, I'm currently having a very strange issue, I am using a form to input some data and send off to a trpc endpoint to retrieve some data from the server when I click the submit button. However, the respnose userData variable is being changed to undefined whenever I type into the form field. I am not sure why this is happening as I do not mutate userData anywhere, and there are no new TRPC queries running (verified checking network tab) and the TRPC endpoint is set to disabled. So it will only fetch data once I call the refetch function... Anyone have any idea?
4 replies
TtRPC
Created by Peform on 6/5/2024 in #❓-help
conditionally fetching data with a useQuery
Hello, From my understanding a useMutation is primarily for updating/deleting/creating a record. And a useQuery is primarily used for fetching data from the server. However, when it comes to conditionally fetching data from the server I belive the syntax for a useMutation is much more ideal? I'm not sure if I am missing something, or if in this scenario it would be better to use a useMutation. The issue is, I only want to query the API when the user presses a specific button and once they have input a userId to search. I also want to display a toast (notification) when the request has finished. However, the onSuccess and onError callbacks are depreciated, meaning I have to now use a useEffect. This is greatly overcomplicating everything. I'm not sure if there is a better way of doing this? Any advice would be appreciated.
3 replies
TtRPC
Created by Peform on 5/10/2024 in #❓-help
uploading image via trpc endpoint
Hello, is there any example for uploading an image to a trpc endpoint?
5 replies