@xstate/react 4.0.0-alpha.2 → 4.0.0-beta.4

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.
Files changed (29) hide show
  1. package/dist/declarations/src/createActorContext.d.ts +6 -6
  2. package/dist/declarations/src/index.d.ts +2 -3
  3. package/dist/declarations/src/useActor.d.ts +6 -3
  4. package/dist/declarations/src/useActorRef.d.ts +14 -0
  5. package/dist/declarations/src/useMachine.d.ts +9 -9
  6. package/dist/{useConstant-ff65b597.cjs.dev.js → useConstant-23e96eea.cjs.dev.js} +21 -1
  7. package/dist/useConstant-720f1662.cjs.prod.js +35 -0
  8. package/dist/{useConstant-0013a606.esm.js → useConstant-9bbaf12a.esm.js} +2 -2
  9. package/dist/xstate-react.cjs.d.mts +2 -0
  10. package/dist/xstate-react.cjs.d.mts.map +1 -0
  11. package/dist/xstate-react.cjs.d.ts +1 -0
  12. package/dist/xstate-react.cjs.d.ts.map +1 -0
  13. package/dist/xstate-react.cjs.dev.js +66 -188
  14. package/dist/xstate-react.cjs.mjs +8 -0
  15. package/dist/xstate-react.cjs.prod.js +59 -186
  16. package/dist/xstate-react.esm.js +53 -192
  17. package/fsm/dist/xstate-react-fsm.cjs.d.mts +2 -0
  18. package/fsm/dist/xstate-react-fsm.cjs.d.mts.map +1 -0
  19. package/fsm/dist/xstate-react-fsm.cjs.d.ts +1 -0
  20. package/fsm/dist/xstate-react-fsm.cjs.d.ts.map +1 -0
  21. package/fsm/dist/xstate-react-fsm.cjs.dev.js +3 -10
  22. package/fsm/dist/xstate-react-fsm.cjs.mjs +4 -0
  23. package/fsm/dist/xstate-react-fsm.cjs.prod.js +3 -10
  24. package/fsm/dist/xstate-react-fsm.esm.js +2 -9
  25. package/package.json +8 -6
  26. package/dist/declarations/src/types.d.ts +0 -15
  27. package/dist/declarations/src/useInterpret.d.ts +0 -12
  28. package/dist/declarations/src/useSpawn.d.ts +0 -9
  29. package/dist/useConstant-c09b427a.cjs.prod.js +0 -15
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var useConstant = require('../../dist/useConstant-ff65b597.cjs.dev.js');
5
+ var useConstant = require('../../dist/useConstant-23e96eea.cjs.dev.js');
6
6
  var fsm = require('@xstate/fsm');
7
7
  var React = require('react');
8
8
  var useIsomorphicLayoutEffect = require('use-isomorphic-layout-effect');
@@ -15,13 +15,6 @@ var useIsomorphicLayoutEffect__default = /*#__PURE__*/_interopDefault(useIsomorp
15
15
  function identity(a) {
16
16
  return a;
17
17
  }
18
- var getServiceState = function getServiceState(service) {
19
- var currentValue;
20
- service.subscribe(function (state) {
21
- currentValue = state;
22
- }).unsubscribe();
23
- return currentValue;
24
- };
25
18
  function useMachine(stateMachine, options) {
26
19
  var persistedStateRef = React.useRef();
27
20
  if (process.env.NODE_ENV !== 'production') {
@@ -51,7 +44,7 @@ function useMachine(stateMachine, options) {
51
44
  queue = _useConstant2[1];
52
45
 
53
46
  // TODO: consider using `useInsertionEffect` if available
54
- useIsomorphicLayoutEffect__default['default'](function () {
47
+ useIsomorphicLayoutEffect__default["default"](function () {
55
48
  if (options) {
56
49
  service._machine._options = options;
57
50
  }
@@ -72,7 +65,7 @@ var isEqual = function isEqual(_prevState, nextState) {
72
65
  };
73
66
  function useService(service) {
74
67
  var getSnapshot = React.useCallback(function () {
75
- return getServiceState(service);
68
+ return service.state;
76
69
  }, [service]);
77
70
  var subscribe = React.useCallback(function (handleStoreChange) {
78
71
  var _service$subscribe = service.subscribe(handleStoreChange),
@@ -0,0 +1,4 @@
1
+ export {
2
+ useMachine,
3
+ useService
4
+ } from "./xstate-react-fsm.cjs.js";
@@ -6,7 +6,7 @@ var fsm = require('@xstate/fsm');
6
6
  var React = require('react');
7
7
  var useIsomorphicLayoutEffect = require('use-isomorphic-layout-effect');
8
8
  var withSelector = require('use-sync-external-store/shim/with-selector');
9
- var useConstant = require('../../dist/useConstant-c09b427a.cjs.prod.js');
9
+ var useConstant = require('../../dist/useConstant-720f1662.cjs.prod.js');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
12
12
 
@@ -70,13 +70,6 @@ function _slicedToArray(arr, i) {
70
70
  function identity(a) {
71
71
  return a;
72
72
  }
73
- var getServiceState = function getServiceState(service) {
74
- var currentValue;
75
- service.subscribe(function (state) {
76
- currentValue = state;
77
- }).unsubscribe();
78
- return currentValue;
79
- };
80
73
  function useMachine(stateMachine, options) {
81
74
  var persistedStateRef = React.useRef();
82
75
  var _useConstant = useConstant.useConstant(function () {
@@ -98,7 +91,7 @@ function useMachine(stateMachine, options) {
98
91
  queue = _useConstant2[1];
99
92
 
100
93
  // TODO: consider using `useInsertionEffect` if available
101
- useIsomorphicLayoutEffect__default['default'](function () {
94
+ useIsomorphicLayoutEffect__default["default"](function () {
102
95
  if (options) {
103
96
  service._machine._options = options;
104
97
  }
@@ -119,7 +112,7 @@ var isEqual = function isEqual(_prevState, nextState) {
119
112
  };
120
113
  function useService(service) {
121
114
  var getSnapshot = React.useCallback(function () {
122
- return getServiceState(service);
115
+ return service.state;
123
116
  }, [service]);
124
117
  var subscribe = React.useCallback(function (handleStoreChange) {
125
118
  var _service$subscribe = service.subscribe(handleStoreChange),
@@ -1,4 +1,4 @@
1
- import { _ as _slicedToArray, u as useConstant } from '../../dist/useConstant-0013a606.esm.js';
1
+ import { _ as _slicedToArray, u as useConstant } from '../../dist/useConstant-9bbaf12a.esm.js';
2
2
  import { interpret, createMachine, InterpreterStatus } from '@xstate/fsm';
3
3
  import { useRef, useState, useEffect, useCallback } from 'react';
4
4
  import useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';
@@ -7,13 +7,6 @@ import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/w
7
7
  function identity(a) {
8
8
  return a;
9
9
  }
10
- var getServiceState = function getServiceState(service) {
11
- var currentValue;
12
- service.subscribe(function (state) {
13
- currentValue = state;
14
- }).unsubscribe();
15
- return currentValue;
16
- };
17
10
  function useMachine(stateMachine, options) {
18
11
  var persistedStateRef = useRef();
19
12
  if (process.env.NODE_ENV !== 'production') {
@@ -64,7 +57,7 @@ var isEqual = function isEqual(_prevState, nextState) {
64
57
  };
65
58
  function useService(service) {
66
59
  var getSnapshot = useCallback(function () {
67
- return getServiceState(service);
60
+ return service.state;
68
61
  }, [service]);
69
62
  var subscribe = useCallback(function (handleStoreChange) {
70
63
  var _service$subscribe = service.subscribe(handleStoreChange),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xstate/react",
3
- "version": "4.0.0-alpha.2",
3
+ "version": "4.0.0-beta.4",
4
4
  "description": "XState tools for React",
5
5
  "keywords": [
6
6
  "state",
@@ -20,10 +20,12 @@
20
20
  "exports": {
21
21
  "./fsm": {
22
22
  "module": "./fsm/dist/xstate-react-fsm.esm.js",
23
+ "import": "./fsm/dist/xstate-react-fsm.cjs.mjs",
23
24
  "default": "./fsm/dist/xstate-react-fsm.cjs.js"
24
25
  },
25
26
  ".": {
26
27
  "module": "./dist/xstate-react.esm.js",
28
+ "import": "./dist/xstate-react.cjs.mjs",
27
29
  "default": "./dist/xstate-react.cjs.js"
28
30
  },
29
31
  "./package.json": "./package.json"
@@ -43,9 +45,9 @@
43
45
  "url": "https://github.com/statelyai/xstate/issues"
44
46
  },
45
47
  "peerDependencies": {
46
- "@xstate/fsm": "^3.0.0-alpha.0",
48
+ "@xstate/fsm": "^3.0.0-beta.2",
47
49
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
48
- "xstate": "^5.0.0-alpha.3"
50
+ "xstate": "^5.0.0-beta.10"
49
51
  },
50
52
  "peerDependenciesMeta": {
51
53
  "@xstate/fsm": {
@@ -56,7 +58,7 @@
56
58
  }
57
59
  },
58
60
  "dependencies": {
59
- "use-isomorphic-layout-effect": "^1.0.0",
61
+ "use-isomorphic-layout-effect": "^1.1.2",
60
62
  "use-sync-external-store": "^1.0.0"
61
63
  },
62
64
  "devDependencies": {
@@ -65,12 +67,12 @@
65
67
  "@types/react": "^17.0.43",
66
68
  "@types/react-dom": "^17.0.14",
67
69
  "@types/use-sync-external-store": "^0.0.3",
68
- "@xstate/fsm": "3.0.0-alpha.0",
70
+ "@xstate/fsm": "3.0.0-beta.2",
69
71
  "jsdom": "^14.0.0",
70
72
  "jsdom-global": "^3.0.2",
71
73
  "react": "^18.0.0",
72
74
  "react-dom": "^18.0.0",
73
- "xstate": "5.0.0-alpha.3"
75
+ "xstate": "5.0.0-beta.10"
74
76
  },
75
77
  "preconstruct": {
76
78
  "entrypoints": [
@@ -1,15 +0,0 @@
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,12 +0,0 @@
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,9 +0,0 @@
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>;
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- function useConstant(fn) {
6
- var ref = React.useRef();
7
- if (!ref.current) {
8
- ref.current = {
9
- v: fn()
10
- };
11
- }
12
- return ref.current.v;
13
- }
14
-
15
- exports.useConstant = useConstant;