import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useTRPC } from "../trpc"; type TRPCApi = ReturnType; export function useCreateRule( opts?: Parameters[0], ) { const api = useTRPC(); const queryClient = useQueryClient(); return useMutation( api.rules.create.mutationOptions({ ...opts, onSuccess: (res, req, meta, context) => { queryClient.invalidateQueries(api.rules.list.pathFilter()); return opts?.onSuccess?.(res, req, meta, context); }, }), ); } export function useUpdateRule( opts?: Parameters[0], ) { const api = useTRPC(); const queryClient = useQueryClient(); return useMutation( api.rules.update.mutationOptions({ ...opts, onSuccess: (res, req, meta, context) => { queryClient.invalidateQueries(api.rules.list.pathFilter()); return opts?.onSuccess?.(res, req, meta, context); }, }), ); } export function useDeleteRule( opts?: Parameters[0], ) { const api = useTRPC(); const queryClient = useQueryClient(); return useMutation( api.rules.delete.mutationOptions({ ...opts, onSuccess: (res, req, meta, context) => { queryClient.invalidateQueries(api.rules.list.pathFilter()); return opts?.onSuccess?.(res, req, meta, context); }, }), ); }