Skip to content
This repository has been archived by the owner on May 16, 2024. It is now read-only.

Commit

Permalink
Merge pull request #155 from unicape/1.x
Browse files Browse the repository at this point in the history
fix: getClient with unconfigured chainId
  • Loading branch information
unicape authored Jan 25, 2024
2 parents 18b9367 + 25ccaa8 commit fc00214
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 30 deletions.
5 changes: 5 additions & 0 deletions .changeset/wise-mice-build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"use-wagmi": patch
---

getClient with unconfigured chainId
4 changes: 2 additions & 2 deletions packages/vue/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@
}
},
"dependencies": {
"@wagmi/connectors": "4.1.9",
"@wagmi/core": "2.6.0",
"@wagmi/connectors": "4.1.10",
"@wagmi/core": "2.6.1",
"vue": "3.3.8",
"vue-demi": "^0.14.6"
},
Expand Down
22 changes: 12 additions & 10 deletions packages/vue/src/hooks/useClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,46 +16,48 @@ import {
readonly,
shallowRef,
} from 'vue-demi'
import type { ConfigParameter, DeepUnwrapRef, MaybeRefDeep } from '../types.js'
import type { ConfigParameter, MaybeRefDeep } from '../types.js'
import { cloneDeepUnref } from '../utils/cloneDeepUnref.js'
import { useConfig } from './useConfig.js'

export type UseClientParameters<
config extends Config = Config,
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
chainId extends config['chains'][number]['id'] | number | undefined =
| config['chains'][number]['id']
| undefined,
> = MaybeRefDeep<
Evaluate<GetClientParameters<config, chainId> & ConfigParameter<config>>
>

export type UseClientReturnType<
config extends Config = Config,
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
chainId extends config['chains'][number]['id'] | number | undefined =
| config['chains'][number]['id']
| undefined,
> = ShallowRef<DeepReadonly<GetClientReturnType<config, chainId>>>

/** https://wagmi.sh/react/api/hooks/useClient */
export function useClient<
config extends Config = ResolvedRegister['config'],
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
chainId extends config['chains'][number]['id'] | number | undefined =
| config['chains'][number]['id']
| undefined,
>(
parameters: UseClientParameters<config, chainId> = {},
): UseClientReturnType<config, chainId> {
const config = useConfig(parameters)
const client = shallowRef(
getClient(
config,
cloneDeepUnref<DeepUnwrapRef<UseClientParameters<config, chainId>>>(
parameters as any,
),
cloneDeepUnref<GetClientParameters<config, chainId>>(parameters as any),
),
)

watchClient(config, {
onChange() {
client.value = getClient(
config,
cloneDeepUnref<DeepUnwrapRef<UseClientParameters<config, chainId>>>(
parameters as any,
),
cloneDeepUnref<GetClientParameters<config, chainId>>(parameters as any),
)
},
})
Expand Down
22 changes: 14 additions & 8 deletions packages/vue/src/hooks/usePublicClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,34 +16,40 @@ import {
readonly,
shallowRef,
} from 'vue-demi'
import type { ConfigParameter, DeepUnwrapRef, MaybeRefDeep } from '../types.js'
import type { ConfigParameter, MaybeRefDeep } from '../types.js'
import { cloneDeepUnref } from '../utils/cloneDeepUnref.js'
import { useConfig } from './useConfig.js'

export type UsePublicClientParameters<
config extends Config = Config,
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
chainId extends config['chains'][number]['id'] | number | undefined =
| config['chains'][number]['id']
| undefined,
> = MaybeRefDeep<
Evaluate<GetPublicClientParameters<config, chainId> & ConfigParameter<config>>
>

export type UsePublicClientReturnType<
config extends Config = Config,
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
chainId extends config['chains'][number]['id'] | number | undefined =
| config['chains'][number]['id']
| undefined,
> = ShallowRef<DeepReadonly<GetPublicClientReturnType<config, chainId>>>

/** https://wagmi.sh/react/api/hooks/usePublicClient */
export function usePublicClient<
config extends Config = ResolvedRegister['config'],
chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
chainId extends config['chains'][number]['id'] | number | undefined =
| config['chains'][number]['id']
| undefined,
>(
parameters: UsePublicClientParameters<config, chainId> = {},
): UsePublicClientReturnType<config, chainId> {
const config = useConfig(parameters)
const publicClient = shallowRef(
getPublicClient(
config,
cloneDeepUnref<DeepUnwrapRef<UsePublicClientParameters<config, chainId>>>(
cloneDeepUnref<GetPublicClientParameters<config, chainId>>(
parameters as any,
),
),
Expand All @@ -53,9 +59,9 @@ export function usePublicClient<
onChange() {
publicClient.value = getPublicClient(
config,
cloneDeepUnref<
DeepUnwrapRef<UsePublicClientParameters<config, chainId>>
>(parameters as any),
cloneDeepUnref<GetPublicClientParameters<config, chainId>>(
parameters as any,
),
)
},
})
Expand Down
20 changes: 10 additions & 10 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit fc00214

Please sign in to comment.