UNPKG

wagmi

Version:

React Hooks for Ethereum

56 lines (52 loc) 1.86 kB
'use client' import { useMutation } from '@tanstack/react-query' import type { Connector, DisconnectErrorType } from '@wagmi/core' import type { Compute, ConfigParameter } from '@wagmi/core/internal' import { type DisconnectData, type DisconnectMutate, type DisconnectMutateAsync, type DisconnectOptions, type DisconnectVariables, disconnectMutationOptions, } from '@wagmi/core/query' import type { UseMutationReturnType } from '../utils/query.js' import { useConfig } from './useConfig.js' import { useConnections } from './useConnections.js' export type UseDisconnectParameters<context = unknown> = Compute< ConfigParameter & DisconnectOptions<context> > export type UseDisconnectReturnType<context = unknown> = Compute< UseMutationReturnType< DisconnectData, DisconnectErrorType, DisconnectVariables, context, DisconnectMutate<context>, DisconnectMutateAsync<context> > & { /** @deprecated use `useConnections` instead */ connectors: readonly Connector[] /** @deprecated use `mutate` instead */ disconnect: DisconnectMutate<context> /** @deprecated use `mutateAsync` instead */ disconnectAsync: DisconnectMutateAsync<context> } > /** https://wagmi.sh/react/api/hooks/useDisconnect */ export function useDisconnect<context = unknown>( parameters: UseDisconnectParameters<context> = {}, ): UseDisconnectReturnType<context> { const config = useConfig(parameters) const options = disconnectMutationOptions(config, parameters) const mutation = useMutation(options) type Return = UseDisconnectReturnType<context> return { ...(mutation as Return), connectors: useConnections({ config }).map( (connection) => connection.connector, ), disconnect: mutation.mutate as Return['mutate'], disconnectAsync: mutation.mutateAsync as Return['mutateAsync'], } }