Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita8823ea

Browse files
dmaskaskydai-shi
andauthored
support multiple args for useHydrateAtoms (#3100)
Co-authored-by: Daishi Kato <dai-shi@users.noreply.github.com>
1 parent13ac37b commita8823ea

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

‎src/react/utils/useHydrateAtoms.ts‎

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,21 @@ type Options = Parameters<typeof useStore>[0] & {
77
}
88
typeAnyWritableAtom=WritableAtom<unknown,never[],unknown>
99

10+
typeSpreadArgs<Argsextendsreadonlyunknown[]>=Argsextendsreadonly[
11+
inferFirst,
12+
...inferRest,
13+
]
14+
?readonly[First, ...Rest]
15+
:Argsextendsreadonly[inferSingle]
16+
?readonly[Single]
17+
:readonly[]
18+
1019
typeInferAtomTuples<T>={
11-
[KinkeyofT]:T[K]extendsreadonly[inferA,unknown]
20+
[KinkeyofT]:T[K]extendsreadonly[inferA,...infer_Rest]
1221
?AextendsWritableAtom<unknown, inferArgs, infer_Result>
13-
?readonly[A,Args[0]]
22+
?Argsextendsreadonlyunknown[]
23+
?readonly[A, ...SpreadArgs<Args>]
24+
:readonly[A]
1425
:T[K]
1526
:never
1627
}
@@ -22,7 +33,7 @@ export type INTERNAL_InferAtomTuples<T> = InferAtomTuples<T>
2233
consthydratedMap:WeakMap<Store,WeakSet<AnyWritableAtom>>=newWeakMap()
2334

2435
exportfunctionuseHydrateAtoms<
25-
Textends(readonly[AnyWritableAtom,unknown])[],
36+
Textends(readonly[AnyWritableAtom,...any[]])[],
2637
>(values:InferAtomTuples<T>,options?:Options):void
2738

2839
exportfunctionuseHydrateAtoms<TextendsMap<AnyWritableAtom,unknown>>(
@@ -31,19 +42,19 @@ export function useHydrateAtoms<T extends Map<AnyWritableAtom, unknown>>(
3142
):void
3243

3344
exportfunctionuseHydrateAtoms<
34-
TextendsIterable<readonly[AnyWritableAtom,unknown]>,
45+
TextendsIterable<readonly[AnyWritableAtom,...any[]]>,
3546
>(values:InferAtomTuples<T>,options?:Options):void
3647

3748
exportfunctionuseHydrateAtoms<
38-
TextendsIterable<readonly[AnyWritableAtom,unknown]>,
49+
TextendsIterable<readonly[AnyWritableAtom,...any[]]>,
3950
>(values:T,options?:Options){
4051
conststore=useStore(options)
4152

4253
consthydratedSet=getHydratedSet(store)
43-
for(const[atom,value]ofvalues){
54+
for(const[atom,...args]ofvalues){
4455
if(!hydratedSet.has(atom)||options?.dangerouslyForceHydrate){
4556
hydratedSet.add(atom)
46-
store.set(atom,valueasnever)
57+
store.set(atom,...(argsasnever[]))
4758
}
4859
}
4960
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp