import { type UseMutationOptions, useMutation } from '@tanstack/react-query'; import type { RpcSchema } from '@yaakapp-internal/proxy-lib'; import { minPromiseMillis } from '@yaakapp-internal/ui'; import type { Req, Res } from '../lib/rpc'; import { rpc } from '../lib/rpc'; /** * React Query mutation wrapper for RPC commands. */ export function useRpcMutation( cmd: K, opts?: Omit, Error, Req>, 'mutationFn'>, ) { return useMutation, Error, Req>({ mutationFn: (payload) => minPromiseMillis(rpc(cmd, payload)), ...opts, }); }