chizu 0.2.62 → 0.2.63
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 +13 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/types.d.ts +3 -3
- package/dist/hooks/utils.d.ts +2 -2
- package/dist/types/index.d.ts +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -113,7 +113,19 @@ actions.useAction(Actions.Search, async (context) => {
|
|
|
113
113
|
|
|
114
114
|
For more details, see the [referential equality recipe](./recipes/referential-equality.md).
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
Both the model and actions type parameters default to `void`, so you can call `useActions()` with no generics at all when neither is needed:
|
|
117
|
+
|
|
118
|
+
```tsx
|
|
119
|
+
import { useActions, Lifecycle } from "chizu";
|
|
120
|
+
|
|
121
|
+
const actions = useActions();
|
|
122
|
+
|
|
123
|
+
actions.useAction(Lifecycle.Mount, () => {
|
|
124
|
+
console.log("Mounted!");
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If your component doesn't need local state but still needs to dispatch or listen to typed actions, pass `void` as the model type. No initial model is required:
|
|
117
129
|
|
|
118
130
|
```tsx
|
|
119
131
|
import { useActions, Action, Lifecycle } from "chizu";
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -39,5 +39,5 @@ export { With } from './utils.ts';
|
|
|
39
39
|
* );
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
export declare function useActions<_M extends void, A extends Actions, D extends Props = Props>(getData?: Data<D>): UseActions<void, A, D>;
|
|
43
|
-
export declare function useActions<M extends Model, A extends Actions, D extends Props = Props>(initialModel: M, getData?: Data<D>): UseActions<M, A, D>;
|
|
42
|
+
export declare function useActions<_M extends void = void, A extends Actions | void = void, D extends Props = Props>(getData?: Data<D>): UseActions<void, A, D>;
|
|
43
|
+
export declare function useActions<M extends Model, A extends Actions | void = void, D extends Props = Props>(initialModel: M, getData?: Data<D>): UseActions<M, A, D>;
|
package/dist/hooks/types.d.ts
CHANGED
|
@@ -25,13 +25,13 @@ export type References<M extends Model | void> = {
|
|
|
25
25
|
* @template AC - The actions class type
|
|
26
26
|
* @template D - The data props type
|
|
27
27
|
*/
|
|
28
|
-
export type Handler<M extends Model | void = Model, AC extends Actions = Actions, D extends Props = Props> = (context: HandlerContext<M, AC, D>, payload: unknown) => void | Promise<void> | AsyncGenerator | Generator;
|
|
28
|
+
export type Handler<M extends Model | void = Model, AC extends Actions | void = Actions, D extends Props = Props> = (context: HandlerContext<M, AC, D>, payload: unknown) => void | Promise<void> | AsyncGenerator | Generator;
|
|
29
29
|
/**
|
|
30
30
|
* Entry for an action handler with a reactive channel getter.
|
|
31
31
|
* When getChannel returns undefined, the handler fires for all dispatches.
|
|
32
32
|
* When getChannel returns a channel, dispatches must match.
|
|
33
33
|
*/
|
|
34
|
-
export type HandlerEntry<M extends Model | void = Model, AC extends Actions = Actions, D extends Props = Props> = {
|
|
34
|
+
export type HandlerEntry<M extends Model | void = Model, AC extends Actions | void = Actions, D extends Props = Props> = {
|
|
35
35
|
handler: Handler<M, AC, D>;
|
|
36
36
|
getChannel: () => Filter | undefined;
|
|
37
37
|
};
|
|
@@ -43,7 +43,7 @@ export type HandlerEntry<M extends Model | void = Model, AC extends Actions = Ac
|
|
|
43
43
|
* @template AC - The actions class type
|
|
44
44
|
* @template D - The data props type
|
|
45
45
|
*/
|
|
46
|
-
export type Scope<M extends Model | void = Model, AC extends Actions = Actions, D extends Props = Props> = {
|
|
46
|
+
export type Scope<M extends Model | void = Model, AC extends Actions | void = Actions, D extends Props = Props> = {
|
|
47
47
|
/** All handlers for each action, with optional channels */
|
|
48
48
|
handlers: Map<ActionId, Set<HandlerEntry<M, AC, D>>>;
|
|
49
49
|
};
|
package/dist/hooks/utils.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export declare function useData<P extends Props>(props: P): P;
|
|
|
68
68
|
* actions.useAction(Actions.Visitor, With("name")); // Country -> string ✗
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
|
71
|
-
export declare function With<K extends string>(key: K): <M extends Model, AC extends Actions, D extends Props, P extends K extends keyof M ? M[K] : never>(context: HandlerContext<M, AC, D>, payload: P) => void;
|
|
71
|
+
export declare function With<K extends string>(key: K): <M extends Model, AC extends Actions | void, D extends Props, P extends K extends keyof M ? M[K] : never>(context: HandlerContext<M, AC, D>, payload: P) => void;
|
|
72
72
|
export { isChanneledAction, getActionSymbol };
|
|
73
73
|
/**
|
|
74
74
|
* Return type for useActionSets hook.
|
|
@@ -139,7 +139,7 @@ export declare function useActionSets(): ActionSets;
|
|
|
139
139
|
*
|
|
140
140
|
* @internal
|
|
141
141
|
*/
|
|
142
|
-
export declare function useRegisterHandler<M extends Model | void, AC extends Actions, D extends Props>(scope: React.RefObject<Scope<M, AC, D>>, action: ActionId | HandlerPayload | ChanneledAction, handler: (context: HandlerContext<M, AC, D>, payload: unknown) => void | Promise<void> | AsyncGenerator | Generator): void;
|
|
142
|
+
export declare function useRegisterHandler<M extends Model | void, AC extends Actions | void, D extends Props>(scope: React.RefObject<Scope<M, AC, D>>, action: ActionId | HandlerPayload | ChanneledAction, handler: (context: HandlerContext<M, AC, D>, payload: unknown) => void | Promise<void> | AsyncGenerator | Generator): void;
|
|
143
143
|
/**
|
|
144
144
|
* Manages captured DOM nodes for a model type.
|
|
145
145
|
* Returns refs for nodes, pending captures, and last emitted nodes.
|
package/dist/types/index.d.ts
CHANGED
|
@@ -440,7 +440,7 @@ export type Actions = object;
|
|
|
440
440
|
export type Result = {
|
|
441
441
|
processes: Set<Process>;
|
|
442
442
|
};
|
|
443
|
-
export type HandlerContext<M extends Model | void, _AC extends Actions, D extends Props = Props> = {
|
|
443
|
+
export type HandlerContext<M extends Model | void, _AC extends Actions | void, D extends Props = Props> = {
|
|
444
444
|
readonly model: Readonly<M>;
|
|
445
445
|
/**
|
|
446
446
|
* The current lifecycle phase of the component.
|
|
@@ -658,7 +658,7 @@ export type HandlerContext<M extends Model | void, _AC extends Actions, D extend
|
|
|
658
658
|
*
|
|
659
659
|
* @see {@link Handlers} for the recommended HKT pattern
|
|
660
660
|
*/
|
|
661
|
-
export type Handler<M extends Model | void, AC extends Actions, K extends keyof AC, D extends Props = Props> = (context: HandlerContext<M, AC, D>, payload: Payload<AC[K] & HandlerPayload<unknown>>) => void | Promise<void> | AsyncGenerator | Generator;
|
|
661
|
+
export type Handler<M extends Model | void, AC extends Actions | void, K extends keyof AC & string, D extends Props = Props> = (context: HandlerContext<M, AC, D>, payload: Payload<AC[K] & HandlerPayload<unknown>>) => void | Promise<void> | AsyncGenerator | Generator;
|
|
662
662
|
/**
|
|
663
663
|
* Resolves the action value at a (possibly dot-notated) path within an actions object.
|
|
664
664
|
* For a simple key like `"SetName"`, returns `AC["SetName"]`.
|
|
@@ -719,10 +719,10 @@ type FlattenKeys<AC, Prefix extends string = never> = {
|
|
|
719
719
|
* export const handlePaymentSent: H["Broadcast.PaymentSent"] = (context) => { ... };
|
|
720
720
|
* ```
|
|
721
721
|
*/
|
|
722
|
-
export type Handlers<M extends Model | void, AC extends Actions, D extends Props = Props> = {
|
|
722
|
+
export type Handlers<M extends Model | void, AC extends Actions | void, D extends Props = Props> = {
|
|
723
723
|
[K in FlattenKeys<AC>]: (context: HandlerContext<M, AC, D>, payload: Payload<DeepAction<AC, K> & HandlerPayload<unknown>>) => void | Promise<void> | AsyncGenerator | Generator;
|
|
724
724
|
};
|
|
725
|
-
export type UseActions<M extends Model | void, AC extends Actions, D extends Props = Props> = [
|
|
725
|
+
export type UseActions<M extends Model | void, AC extends Actions | void, D extends Props = Props> = [
|
|
726
726
|
Readonly<M>,
|
|
727
727
|
{
|
|
728
728
|
/**
|