import type { Config, Connector, ResolvedRegister, SwitchConnectionErrorType, } from '@wagmi/core' import type { Compute, ConfigParameter } from '@wagmi/core/internal' import { type SwitchConnectionData, type SwitchConnectionMutate, type SwitchConnectionMutateAsync, type SwitchConnectionOptions, type SwitchConnectionVariables, switchConnectionMutationOptions, } from '@wagmi/core/query' import { computed, type Ref } from 'vue' import { type UseMutationReturnType, useMutation } from '../utils/query.js' import { useConfig } from './useConfig.js' import { useConnections } from './useConnections.js' export type UseSwitchConnectionParameters< config extends Config = Config, context = unknown, > = Compute & SwitchConnectionOptions> export type UseSwitchConnectionReturnType< config extends Config = Config, context = unknown, > = Compute< UseMutationReturnType< SwitchConnectionData, SwitchConnectionErrorType, SwitchConnectionVariables, context, SwitchConnectionMutate, SwitchConnectionMutateAsync > & { /** @deprecated use `useConnections` instead */ connectors: Ref /** @deprecated use `switchConnection` instead */ switchAccount: SwitchConnectionMutate /** @deprecated use `switchConnectionAsync` instead */ switchAccountAsync: SwitchConnectionMutateAsync /** @deprecated use `mutate` instead */ switchConnection: SwitchConnectionMutate /** @deprecated use `mutateAsync` instead */ switchConnectionAsync: SwitchConnectionMutateAsync } > /** https://wagmi.sh/vue/api/composables/useSwitchConnection */ export function useSwitchConnection< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: UseSwitchConnectionParameters = {}, ): UseSwitchConnectionReturnType { const config = useConfig(parameters) const connections = useConnections({ config }) const options = switchConnectionMutationOptions(config, parameters as any) const mutation = useMutation(options) type Return = UseSwitchConnectionReturnType return { ...(mutation as Return), connectors: computed(() => connections.value.map((connection) => connection.connector), ), switchAccount: mutation.mutate as Return['mutate'], switchAccountAsync: mutation.mutateAsync as Return['mutateAsync'], switchConnection: mutation.mutate as Return['mutate'], switchConnectionAsync: mutation.mutateAsync as Return['mutateAsync'], } }