@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.
@@ -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 declare type MaybeLazy<T> = T | (() => T);
3
- export declare type NoInfer<T> = [T][T extends any ? 0 : any];
4
- export declare 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
+ 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
- import { UseMachineOptions } from './useMachine';
4
- export declare function useIdleInterpreter(getMachine: MaybeLazy<AnyStateMachine>, options: Partial<InterpreterOptions> & Partial<UseMachineOptions<any, never>> & Partial<MachineImplementations<any, never>>): AnyInterpreter;
5
- declare type RestParams<TMachine extends AnyStateMachine> = AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends false ? [
6
- options: InterpreterOptions & UseMachineOptions<TMachine['__TContext'], TMachine['__TEvent']> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta'], true>,
7
- observerOrListener?: Observer<StateFrom<TMachine>> | ((value: StateFrom<TMachine>) => void)
8
- ] : [
9
- options?: InterpreterOptions & UseMachineOptions<TMachine['__TContext'], TMachine['__TEvent']> & InternalMachineImplementations<TMachine['__TContext'], TMachine['__TEvent'], TMachine['__TResolvedTypesMeta']>,
10
- observerOrListener?: Observer<StateFrom<TMachine>> | ((value: StateFrom<TMachine>) => void)
11
- ];
12
- export declare function useInterpret<TMachine extends AnyStateMachine>(getMachine: MaybeLazy<TMachine>, ...[options, observerOrListener]: RestParams<TMachine>): InterpreterFrom<TMachine>;
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, EventObject, InternalMachineImplementations, InterpreterFrom, InterpreterOptions, MachineContext, StateConfig, StateFrom } from 'xstate';
2
- import { MaybeLazy, Prop } from './types';
3
- export interface UseMachineOptions<TContext extends MachineContext, TEvent extends EventObject> {
4
- /**
5
- * If provided, will be merged with machine's `context`.
6
- */
7
- context?: Partial<TContext>;
8
- /**
9
- * The state to rehydrate the machine to. The machine will
10
- * start at this state instead of its `initialState`.
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, Behavior, 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: Behavior<TEvent, TState>): ActorRef<TEvent, TState>;
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
- if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
9
- var _arr = [];
10
- var _n = true;
11
- var _d = false;
12
- var _e = undefined;
13
-
14
- try {
15
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
16
- _arr.push(_s.value);
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 (!_n && _i["return"] != null) _i["return"]();
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
- if (_d) throw _e;
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
 
@@ -4,13 +4,11 @@ var React = require('react');
4
4
 
5
5
  function useConstant(fn) {
6
6
  var ref = React.useRef();
7
-
8
7
  if (!ref.current) {
9
8
  ref.current = {
10
9
  v: fn()
11
10
  };
12
11
  }
13
-
14
12
  return ref.current.v;
15
13
  }
16
14
 
@@ -7,37 +7,36 @@ function _arrayWithHoles(arr) {
7
7
  }
8
8
 
9
9
  function _iterableToArrayLimit(arr, i) {
10
- if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
11
- var _arr = [];
12
- var _n = true;
13
- var _d = false;
14
- var _e = undefined;
15
-
16
- try {
17
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
18
- _arr.push(_s.value);
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 (!_n && _i["return"] != null) _i["return"]();
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
- if (_d) throw _e;
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