Demo

toast

User feedback for mutations. Prefer toast in mutation onSuccess / onError — avoid try/catch only for UI errors in components.

toast

User feedback for mutations. Prefer toast in mutation onSuccess / onError — avoid try/catch only for UI errors in components.

TSXfeature.mutations.ts
1import { useMutation, useQueryClient } from "@tanstack/react-query"; 2import { toast } from "@quan-erp/shared-frontend-core"; 3import { createItemApi } from "./feature.api"; 4 5export function useCreateItemMutation() { 6 const qc = useQueryClient(); 7 return useMutation({ 8 mutationFn: (payload: CreateItemDto) => createItemApi.fetchFn(payload), 9 onSuccess: () => { 10 qc.invalidateQueries({ queryKey: ["items"] }); 11 toast.success("Created successfully"); 12 }, 13 onError: (e: Error) => { 14 toast.error(e.message ?? "Failed to create"); 15 }, 16 }); 17}