@xstate/react 4.0.0-alpha.0 → 4.0.0-alpha.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/dist/declarations/src/createActorContext.d.ts +15 -0
- package/dist/declarations/src/fsm.d.ts +3 -3
- package/dist/declarations/src/index.d.ts +7 -5
- package/dist/declarations/src/shallowEqual.d.ts +1 -0
- package/dist/declarations/src/types.d.ts +15 -15
- package/dist/declarations/src/useActor.d.ts +3 -3
- package/dist/declarations/src/useConstant.d.ts +1 -1
- package/dist/declarations/src/useInterpret.d.ts +12 -13
- package/dist/declarations/src/useMachine.d.ts +10 -21
- package/dist/declarations/src/useSelector.d.ts +2 -2
- package/dist/declarations/src/useSpawn.d.ts +9 -9
- package/dist/{useConstant-94bfdbb5.esm.js → useConstant-0013a606.esm.js} +21 -24
- package/dist/{useConstant-eeb49d3f.cjs.prod.js → useConstant-c09b427a.cjs.prod.js} +0 -2
- package/dist/{useConstant-644f0e11.cjs.dev.js → useConstant-ff65b597.cjs.dev.js} +21 -24
- package/dist/xstate-react.cjs.dev.js +159 -65
- package/dist/xstate-react.cjs.prod.js +157 -61
- package/dist/xstate-react.esm.js +160 -68
- package/fsm/dist/xstate-react-fsm.cjs.dev.js +24 -35
- package/fsm/dist/xstate-react-fsm.cjs.prod.js +43 -53
- package/fsm/dist/xstate-react-fsm.esm.js +23 -34
- package/package.json +17 -6
- package/CHANGELOG.md +0 -481
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ActorRefFrom, AnyStateMachine, AreAllImplementationsAssumedToBeProvided, SnapshotFrom, InternalMachineImplementations, InterpreterOptions, Observer, StateFrom } from 'xstate';
|
|
3
|
+
export declare function createActorContext<TMachine extends AnyStateMachine>(machine: TMachine, interpreterOptions?: InterpreterOptions<TMachine>, observerOrListener?: Observer<StateFrom<TMachine>> | ((value: StateFrom<TMachine>) => void)): {
|
|
4
|
+
useActor: () => [StateFrom<TMachine>, ActorRefFrom<TMachine>['send']];
|
|
5
|
+
useSelector: <T>(selector: (snapshot: SnapshotFrom<TMachine>) => T, compare?: (a: T, b: T) => boolean) => T;
|
|
6
|
+
useActorRef: () => ActorRefFrom<TMachine>;
|
|
7
|
+
Provider: (props: {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
machine?: TMachine | (() => TMachine);
|
|
10
|
+
} & (AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends false ? {
|
|
11
|
+
options: InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta'], true>;
|
|
12
|
+
} : {
|
|
13
|
+
options?: InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta']>;
|
|
14
|
+
})) => React.ReactElement<any, any>;
|
|
15
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { MachineImplementationsFrom, ServiceFrom, StateFrom, StateMachine } from '@xstate/fsm';
|
|
2
|
-
export declare function useMachine<TMachine extends StateMachine.AnyMachine>(stateMachine: TMachine, options?: MachineImplementationsFrom<TMachine>): [StateFrom<TMachine>, ServiceFrom<TMachine>['send'], ServiceFrom<TMachine>];
|
|
3
|
-
export declare function useService<TService extends StateMachine.AnyService>(service: TService): [StateFrom<TService>, TService['send'], TService];
|
|
1
|
+
import { MachineImplementationsFrom, ServiceFrom, StateFrom, StateMachine } from '@xstate/fsm';
|
|
2
|
+
export declare function useMachine<TMachine extends StateMachine.AnyMachine>(stateMachine: TMachine, options?: MachineImplementationsFrom<TMachine>): [StateFrom<TMachine>, ServiceFrom<TMachine>['send'], ServiceFrom<TMachine>];
|
|
3
|
+
export declare function useService<TService extends StateMachine.AnyService>(service: TService): [StateFrom<TService>, TService['send'], TService];
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export { useMachine } from './useMachine';
|
|
2
|
-
export { useActor } from './useActor';
|
|
3
|
-
export { useInterpret } from './useInterpret';
|
|
4
|
-
export { useSelector } from './useSelector';
|
|
5
|
-
export { useSpawn } from './useSpawn';
|
|
1
|
+
export { useMachine } from './useMachine.ts';
|
|
2
|
+
export { useActor } from './useActor.ts';
|
|
3
|
+
export { useInterpret } from './useInterpret.ts';
|
|
4
|
+
export { useSelector } from './useSelector.ts';
|
|
5
|
+
export { useSpawn } from './useSpawn.ts';
|
|
6
|
+
export { shallowEqual } from './shallowEqual.ts';
|
|
7
|
+
export { createActorContext } from './createActorContext.ts';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function shallowEqual(objA: any, objB: any): boolean;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { EventObject, MachineContext, StateConfig } from 'xstate';
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export interface UseMachineOptions<TContext extends MachineContext, TEvent extends EventObject> {
|
|
6
|
-
/**
|
|
7
|
-
* If provided, will be merged with machine's `context`.
|
|
8
|
-
*/
|
|
9
|
-
context?: Partial<TContext>;
|
|
10
|
-
/**
|
|
11
|
-
* The state to rehydrate the machine to. The machine will
|
|
12
|
-
* start at this state instead of its `initialState`.
|
|
13
|
-
*/
|
|
14
|
-
state?: StateConfig<TContext, TEvent>;
|
|
15
|
-
}
|
|
1
|
+
import { EventObject, MachineContext, StateConfig } from 'xstate';
|
|
2
|
+
export type MaybeLazy<T> = T | (() => T);
|
|
3
|
+
export type NoInfer<T> = [T][T extends any ? 0 : any];
|
|
4
|
+
export type Prop<T, K> = K extends keyof T ? T[K] : never;
|
|
5
|
+
export interface UseMachineOptions<TContext extends MachineContext, TEvent extends EventObject> {
|
|
6
|
+
/**
|
|
7
|
+
* If provided, will be merged with machine's `context`.
|
|
8
|
+
*/
|
|
9
|
+
context?: Partial<TContext>;
|
|
10
|
+
/**
|
|
11
|
+
* The state to rehydrate the machine to. The machine will
|
|
12
|
+
* start at this state instead of its `initialState`.
|
|
13
|
+
*/
|
|
14
|
+
state?: StateConfig<TContext, TEvent>;
|
|
15
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ActorRef, EventObject, SnapshotFrom } from 'xstate';
|
|
2
|
-
export declare function useActor<TActor extends ActorRef<any, any>>(actorRef: TActor): [SnapshotFrom<TActor>, TActor['send']];
|
|
3
|
-
export declare function useActor<TEvent extends EventObject, TSnapshot>(actorRef: ActorRef<TEvent, TSnapshot>): [TSnapshot, (event: TEvent) => void];
|
|
1
|
+
import { ActorRef, EventObject, SnapshotFrom } from 'xstate';
|
|
2
|
+
export declare function useActor<TActor extends ActorRef<any, any>>(actorRef: TActor): [SnapshotFrom<TActor>, TActor['send']];
|
|
3
|
+
export declare function useActor<TEvent extends EventObject, TSnapshot>(actorRef: ActorRef<TEvent, TSnapshot>): [TSnapshot, (event: TEvent) => void];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function useConstant<T>(fn: () => T): T;
|
|
1
|
+
export default function useConstant<T>(fn: () => T): T;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { AnyInterpreter, AnyStateMachine, AreAllImplementationsAssumedToBeProvided, InternalMachineImplementations, InterpreterFrom, InterpreterOptions, MachineImplementations, Observer, StateFrom } from 'xstate';
|
|
2
|
-
import { MaybeLazy } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
]
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
]
|
|
12
|
-
export
|
|
13
|
-
export {};
|
|
1
|
+
import { AnyInterpreter, AnyStateMachine, AreAllImplementationsAssumedToBeProvided, InternalMachineImplementations, InterpreterFrom, InterpreterOptions, MachineImplementations, Observer, StateFrom } from 'xstate';
|
|
2
|
+
import { MaybeLazy } from './types.ts';
|
|
3
|
+
export declare function useIdleInterpreter(getMachine: MaybeLazy<AnyStateMachine>, options: Partial<InterpreterOptions<AnyStateMachine>> & Partial<MachineImplementations<any, never>>): AnyInterpreter;
|
|
4
|
+
type RestParams<TMachine extends AnyStateMachine> = AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends false ? [
|
|
5
|
+
options: InterpreterOptions<TMachine> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta'], true>,
|
|
6
|
+
observerOrListener?: Observer<StateFrom<TMachine>> | ((value: StateFrom<TMachine>) => void)
|
|
7
|
+
] : [
|
|
8
|
+
options?: InterpreterOptions<TMachine> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta']>,
|
|
9
|
+
observerOrListener?: Observer<StateFrom<TMachine>> | ((value: StateFrom<TMachine>) => void)
|
|
10
|
+
];
|
|
11
|
+
export declare function useInterpret<TMachine extends AnyStateMachine>(getMachine: MaybeLazy<TMachine>, ...[options, observerOrListener]: RestParams<TMachine>): InterpreterFrom<TMachine>;
|
|
12
|
+
export {};
|
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
import { AnyStateMachine, AreAllImplementationsAssumedToBeProvided,
|
|
2
|
-
import { MaybeLazy, Prop } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
state?: StateConfig<TContext, TEvent>;
|
|
13
|
-
}
|
|
14
|
-
declare type RestParams<TMachine extends AnyStateMachine> = AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends false ? [
|
|
15
|
-
options: InterpreterOptions & UseMachineOptions<TMachine['__TContext'], TMachine['__TEvent']> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta'], true>
|
|
16
|
-
] : [
|
|
17
|
-
options?: InterpreterOptions & UseMachineOptions<TMachine['__TContext'], TMachine['__TEvent']> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta']>
|
|
18
|
-
];
|
|
19
|
-
declare type UseMachineReturn<TMachine extends AnyStateMachine, TInterpreter = InterpreterFrom<TMachine>> = [StateFrom<TMachine>, Prop<TInterpreter, 'send'>, TInterpreter];
|
|
20
|
-
export declare function useMachine<TMachine extends AnyStateMachine>(getMachine: MaybeLazy<TMachine>, ...[options]: RestParams<TMachine>): UseMachineReturn<TMachine>;
|
|
21
|
-
export {};
|
|
1
|
+
import { AnyStateMachine, AreAllImplementationsAssumedToBeProvided, InternalMachineImplementations, InterpreterFrom, InterpreterOptions, StateFrom } from 'xstate';
|
|
2
|
+
import { MaybeLazy, Prop } from './types.ts';
|
|
3
|
+
type RestParams<TMachine extends AnyStateMachine> = AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends false ? [
|
|
4
|
+
options: InterpreterOptions<TMachine> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta'], true>
|
|
5
|
+
] : [
|
|
6
|
+
options?: InterpreterOptions<TMachine> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta']>
|
|
7
|
+
];
|
|
8
|
+
type UseMachineReturn<TMachine extends AnyStateMachine, TInterpreter = InterpreterFrom<TMachine>> = [StateFrom<TMachine>, Prop<TInterpreter, 'send'>, TInterpreter];
|
|
9
|
+
export declare function useMachine<TMachine extends AnyStateMachine>(getMachine: MaybeLazy<TMachine>, ...[options]: RestParams<TMachine>): UseMachineReturn<TMachine>;
|
|
10
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ActorRef, SnapshotFrom } from 'xstate';
|
|
2
|
-
export declare function useSelector<TActor extends ActorRef<any, any>, T>(actor: TActor, selector: (emitted: SnapshotFrom<TActor>) => T, compare?: (a: T, b: T) => boolean): T;
|
|
1
|
+
import { ActorRef, SnapshotFrom } from 'xstate';
|
|
2
|
+
export declare function useSelector<TActor extends ActorRef<any, any>, T>(actor: TActor, selector: (emitted: SnapshotFrom<TActor>) => T, compare?: (a: T, b: T) => boolean): T;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ActorRef,
|
|
2
|
-
/**
|
|
3
|
-
* React hook that spawns an `ActorRef` with the specified `behavior`.
|
|
4
|
-
* The returned `ActorRef` can be used with the `useActor(actorRef)` hook.
|
|
5
|
-
*
|
|
6
|
-
* @param behavior The actor behavior to spawn
|
|
7
|
-
* @returns An ActorRef with the specified `behavior`
|
|
8
|
-
*/
|
|
9
|
-
export declare function useSpawn<TState, TEvent extends EventObject>(behavior:
|
|
1
|
+
import { ActorRef, ActorBehavior, EventObject } from 'xstate';
|
|
2
|
+
/**
|
|
3
|
+
* React hook that spawns an `ActorRef` with the specified `behavior`.
|
|
4
|
+
* The returned `ActorRef` can be used with the `useActor(actorRef)` hook.
|
|
5
|
+
*
|
|
6
|
+
* @param behavior The actor behavior to spawn
|
|
7
|
+
* @returns An ActorRef with the specified `behavior`
|
|
8
|
+
*/
|
|
9
|
+
export declare function useSpawn<TState, TEvent extends EventObject>(behavior: ActorBehavior<TEvent, TState>): ActorRef<TEvent, TState>;
|
|
@@ -5,37 +5,36 @@ function _arrayWithHoles(arr) {
|
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
function _iterableToArrayLimit(arr, i) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (i && _arr.length === i) break;
|
|
19
|
-
}
|
|
20
|
-
} catch (err) {
|
|
21
|
-
_d = true;
|
|
22
|
-
_e = err;
|
|
23
|
-
} finally {
|
|
8
|
+
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
|
|
9
|
+
if (null != _i) {
|
|
10
|
+
var _s,
|
|
11
|
+
_e,
|
|
12
|
+
_x,
|
|
13
|
+
_r,
|
|
14
|
+
_arr = [],
|
|
15
|
+
_n = !0,
|
|
16
|
+
_d = !1;
|
|
24
17
|
try {
|
|
25
|
-
if (
|
|
18
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) {
|
|
19
|
+
if (Object(_i) !== _i) return;
|
|
20
|
+
_n = !1;
|
|
21
|
+
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
22
|
+
} catch (err) {
|
|
23
|
+
_d = !0, _e = err;
|
|
26
24
|
} finally {
|
|
27
|
-
|
|
25
|
+
try {
|
|
26
|
+
if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
|
|
27
|
+
} finally {
|
|
28
|
+
if (_d) throw _e;
|
|
29
|
+
}
|
|
28
30
|
}
|
|
31
|
+
return _arr;
|
|
29
32
|
}
|
|
30
|
-
|
|
31
|
-
return _arr;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
function _arrayLikeToArray(arr, len) {
|
|
35
36
|
if (len == null || len > arr.length) len = arr.length;
|
|
36
|
-
|
|
37
37
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
38
|
-
|
|
39
38
|
return arr2;
|
|
40
39
|
}
|
|
41
40
|
|
|
@@ -58,13 +57,11 @@ function _slicedToArray(arr, i) {
|
|
|
58
57
|
|
|
59
58
|
function useConstant(fn) {
|
|
60
59
|
var ref = useRef();
|
|
61
|
-
|
|
62
60
|
if (!ref.current) {
|
|
63
61
|
ref.current = {
|
|
64
62
|
v: fn()
|
|
65
63
|
};
|
|
66
64
|
}
|
|
67
|
-
|
|
68
65
|
return ref.current.v;
|
|
69
66
|
}
|
|
70
67
|
|
|
@@ -7,37 +7,36 @@ function _arrayWithHoles(arr) {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
function _iterableToArrayLimit(arr, i) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (i && _arr.length === i) break;
|
|
21
|
-
}
|
|
22
|
-
} catch (err) {
|
|
23
|
-
_d = true;
|
|
24
|
-
_e = err;
|
|
25
|
-
} finally {
|
|
10
|
+
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
|
|
11
|
+
if (null != _i) {
|
|
12
|
+
var _s,
|
|
13
|
+
_e,
|
|
14
|
+
_x,
|
|
15
|
+
_r,
|
|
16
|
+
_arr = [],
|
|
17
|
+
_n = !0,
|
|
18
|
+
_d = !1;
|
|
26
19
|
try {
|
|
27
|
-
if (
|
|
20
|
+
if (_x = (_i = _i.call(arr)).next, 0 === i) {
|
|
21
|
+
if (Object(_i) !== _i) return;
|
|
22
|
+
_n = !1;
|
|
23
|
+
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
|
|
24
|
+
} catch (err) {
|
|
25
|
+
_d = !0, _e = err;
|
|
28
26
|
} finally {
|
|
29
|
-
|
|
27
|
+
try {
|
|
28
|
+
if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
|
|
29
|
+
} finally {
|
|
30
|
+
if (_d) throw _e;
|
|
31
|
+
}
|
|
30
32
|
}
|
|
33
|
+
return _arr;
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
return _arr;
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
function _arrayLikeToArray(arr, len) {
|
|
37
38
|
if (len == null || len > arr.length) len = arr.length;
|
|
38
|
-
|
|
39
39
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
40
|
-
|
|
41
40
|
return arr2;
|
|
42
41
|
}
|
|
43
42
|
|
|
@@ -60,13 +59,11 @@ function _slicedToArray(arr, i) {
|
|
|
60
59
|
|
|
61
60
|
function useConstant(fn) {
|
|
62
61
|
var ref = React.useRef();
|
|
63
|
-
|
|
64
62
|
if (!ref.current) {
|
|
65
63
|
ref.current = {
|
|
66
64
|
v: fn()
|
|
67
65
|
};
|
|
68
66
|
}
|
|
69
|
-
|
|
70
67
|
return ref.current.v;
|
|
71
68
|
}
|
|
72
69
|
|