'use client' import { useMutation } from '@tanstack/vue-query' import type { SignTypedDataErrorType } from '@wagmi/core' import type { Evaluate } from '@wagmi/core/internal' import { type SignTypedDataData, type SignTypedDataMutate, type SignTypedDataMutateAsync, type SignTypedDataVariables, signTypedDataMutationOptions, } from '@wagmi/core/query' import type { ConfigParameter, MaybeRef } from '../types.js' import type { UseMutationParameters, UseMutationReturnType, } from '../utils/query.js' import { useConfig } from './useConfig.js' export type UseSignTypedDataParameters = Evaluate< MaybeRef & { mutation?: | UseMutationParameters< SignTypedDataData, SignTypedDataErrorType, SignTypedDataVariables, context > | undefined } > export type UseSignTypedDataReturnType = Evaluate< UseMutationReturnType< SignTypedDataData, SignTypedDataErrorType, SignTypedDataVariables, context > & { signTypedData: SignTypedDataMutate signTypedDataAsync: SignTypedDataMutateAsync } > /** https://wagmi.sh/react/api/hooks/useSignTypedData */ export function useSignTypedData( parameters: UseSignTypedDataParameters = {}, ): UseSignTypedDataReturnType { const { mutation } = parameters const config = useConfig(parameters) const mutationOptions = signTypedDataMutationOptions(config) const { mutate, mutateAsync, ...result } = useMutation({ ...mutation, ...mutationOptions, }) type Return = UseSignTypedDataReturnType return { ...result, signTypedData: mutate as Return['signTypedData'], signTypedDataAsync: mutateAsync as Return['signTypedDataAsync'], } }