@molecule/app-react 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -2
- package/dist/hooks/useForm.d.ts +1 -1
- package/dist/hooks/useForm.d.ts.map +1 -1
- package/dist/hooks/useForm.js.map +1 -1
- package/dist/hooks/usePromise.d.ts +11 -0
- package/dist/hooks/usePromise.d.ts.map +1 -1
- package/dist/hooks/usePromise.js +11 -0
- package/dist/hooks/usePromise.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
|
|
|
3
3
|
Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
|
|
4
4
|
Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
|
|
5
5
|
To change this document, edit the module-level JSDoc in src/index.ts.
|
|
6
|
-
Generated: 2026-10-
|
|
6
|
+
Generated: 2026-10-29T06:28:17.772Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/app-react
|
|
@@ -877,7 +877,9 @@ interface UseFormResult<T extends FormValuesConstraint<T>> {
|
|
|
877
877
|
clearErrors: () => void
|
|
878
878
|
|
|
879
879
|
// Form methods
|
|
880
|
-
handleSubmit: (
|
|
880
|
+
handleSubmit: (
|
|
881
|
+
onSubmit: (values: T) => void | Promise<void>,
|
|
882
|
+
) => (event?: React.FormEvent) => Promise<void>
|
|
881
883
|
reset: (values?: Partial<T>) => void
|
|
882
884
|
validate: () => Promise<boolean>
|
|
883
885
|
}
|
|
@@ -2484,6 +2486,17 @@ function useProfileForm<TUser, TValues extends FormValuesConstraint<TValues>>(
|
|
|
2484
2486
|
|
|
2485
2487
|
Hook that wraps an async function with state tracking.
|
|
2486
2488
|
|
|
2489
|
+
For one UI action, pass `state.status === 'pending'` to `Button loading`
|
|
2490
|
+
from `@molecule/app-ui-react` (or to a native control's `disabled` prop).
|
|
2491
|
+
The control then refuses input while the request is pending and re-enables
|
|
2492
|
+
when the tracked call settles. Handle the returned promise's rejection;
|
|
2493
|
+
the hook also records the failure in `state.error`.
|
|
2494
|
+
|
|
2495
|
+
This hook tracks the latest call: it does not serialize invocations or
|
|
2496
|
+
cancel their network requests. An explicit reset/cancel changes the tracked
|
|
2497
|
+
state, so it is not proof that an outstanding request has stopped. Use an
|
|
2498
|
+
app-owned queue when every click must be accepted in order.
|
|
2499
|
+
|
|
2487
2500
|
```typescript
|
|
2488
2501
|
function usePromise<T extends (...args: any[]) => Promise<any>>(
|
|
2489
2502
|
asyncFn: T,
|
package/dist/hooks/useForm.d.ts
CHANGED
|
@@ -35,7 +35,7 @@ export interface UseFormResult<T extends FormValuesConstraint<T>> {
|
|
|
35
35
|
getError: (name: keyof T) => string | undefined;
|
|
36
36
|
setError: (name: keyof T, error: string | undefined) => void;
|
|
37
37
|
clearErrors: () => void;
|
|
38
|
-
handleSubmit: (onSubmit: (values: T) => void | Promise<void>) => (event?: React.FormEvent) => void
|
|
38
|
+
handleSubmit: (onSubmit: (values: T) => void | Promise<void>) => (event?: React.FormEvent) => Promise<void>;
|
|
39
39
|
reset: (values?: Partial<T>) => void;
|
|
40
40
|
validate: () => Promise<boolean>;
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/hooks/useForm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAmC5B;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACvF;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAA;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC;IAE9D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IAGrB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,CAAC,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACxD,iBAAiB,CAAA;IACtB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5D,WAAW,EAAE,MAAM,IAAI,CAAA;IAGvB,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/hooks/useForm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAmC5B;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACvF;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAA;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC;IAE9D,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IAGrB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,CAAC,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KACxD,iBAAiB,CAAA;IACtB,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9C,QAAQ,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAC3D,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5D,WAAW,EAAE,MAAM,IAAI,CAAA;IAGvB,YAAY,EAAE,CACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAC1C,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACpC,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjF,OAAO,GAAE,cAAc,CAAC,CAAC,CAAM,GAC9B,aAAa,CAAC,CAAC,CAAC,CAwElB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAC3E,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,CAAC,GACN,CAAC,CAAC,CAAC,CAAC,CAGN;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,CAAC,EAC7D,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,MAAM,CAAC,GACZ,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAGxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.js","sourceRoot":"","sources":["../../src/hooks/useForm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAA;AAW1E,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEpE;;;;;;;;GAQG;AACH,SAAS,eAAe,CACtB,IAAuB,EACvB,IAAa;IAEb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAA;QACrB,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;YAC3B,SAAS,EAAE,CAAC,QAAoB,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,GAAS,EAAE;oBACzB,QAAQ,GAAG,IAAI,EAAE,CAAA;oBACjB,QAAQ,EAAE,CAAA;gBACZ,CAAC,CAAA;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC3C,oEAAoE;gBACpE,OAAO,EAAE,CAAA;gBACT,OAAO,WAAW,CAAA;YACpB,CAAC;SACF,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAChB,OAAO,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;AACpF,CAAC;
|
|
1
|
+
{"version":3,"file":"useForm.js","sourceRoot":"","sources":["../../src/hooks/useForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,17 @@ export interface UsePromiseState<T> {
|
|
|
17
17
|
/**
|
|
18
18
|
* Hook that wraps an async function with state tracking.
|
|
19
19
|
*
|
|
20
|
+
* For one UI action, pass `state.status === 'pending'` to `Button loading`
|
|
21
|
+
* from `@molecule/app-ui-react` (or to a native control's `disabled` prop).
|
|
22
|
+
* The control then refuses input while the request is pending and re-enables
|
|
23
|
+
* when the tracked call settles. Handle the returned promise's rejection;
|
|
24
|
+
* the hook also records the failure in `state.error`.
|
|
25
|
+
*
|
|
26
|
+
* This hook tracks the latest call: it does not serialize invocations or
|
|
27
|
+
* cancel their network requests. An explicit reset/cancel changes the tracked
|
|
28
|
+
* state, so it is not proof that an outstanding request has stopped. Use an
|
|
29
|
+
* app-owned queue when every click must be accepted in order.
|
|
30
|
+
*
|
|
20
31
|
* @param asyncFn - The async function to wrap
|
|
21
32
|
* @returns Tuple of [state, wrappedFunction]
|
|
22
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromise.d.ts","sourceRoot":"","sources":["../../src/hooks/usePromise.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED
|
|
1
|
+
{"version":3,"file":"usePromise.d.ts","sourceRoot":"","sources":["../../src/hooks/usePromise.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACnE,SAAS,CAAC,KACT,CACD,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EACvC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CA+F5D,CAAA"}
|
package/dist/hooks/usePromise.js
CHANGED
|
@@ -8,6 +8,17 @@ import { useEffect, useMemo, useRef, useState } from 'react';
|
|
|
8
8
|
/**
|
|
9
9
|
* Hook that wraps an async function with state tracking.
|
|
10
10
|
*
|
|
11
|
+
* For one UI action, pass `state.status === 'pending'` to `Button loading`
|
|
12
|
+
* from `@molecule/app-ui-react` (or to a native control's `disabled` prop).
|
|
13
|
+
* The control then refuses input while the request is pending and re-enables
|
|
14
|
+
* when the tracked call settles. Handle the returned promise's rejection;
|
|
15
|
+
* the hook also records the failure in `state.error`.
|
|
16
|
+
*
|
|
17
|
+
* This hook tracks the latest call: it does not serialize invocations or
|
|
18
|
+
* cancel their network requests. An explicit reset/cancel changes the tracked
|
|
19
|
+
* state, so it is not proof that an outstanding request has stopped. Use an
|
|
20
|
+
* app-owned queue when every click must be accepted in order.
|
|
21
|
+
*
|
|
11
22
|
* @param asyncFn - The async function to wrap
|
|
12
23
|
* @returns Tuple of [state, wrappedFunction]
|
|
13
24
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../../src/hooks/usePromise.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAe5D
|
|
1
|
+
{"version":3,"file":"usePromise.js","sourceRoot":"","sources":["../../src/hooks/usePromise.ts"],"names":[],"mappings":"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"}
|