@lite-fsm/react 2.0.1 → 2.0.3
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/FSMProvider.d.cts +2 -3
- package/dist/FSMProvider.d.ts +2 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/persistContext.d.cts +12 -0
- package/dist/persistContext.d.ts +12 -0
- package/package.json +2 -2
package/dist/FSMProvider.d.cts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { AnyEvent, IMachineManager, MachinesState, MachineStore } from "@lite-fsm/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
3
|
+
import type { FSMPersistLifecycle } from "./persistContext";
|
|
4
|
+
export type { FSMPersistLifecycle } from "./persistContext";
|
|
6
5
|
export type FSMContextProviderProps<S extends MachineStore, P extends AnyEvent = AnyEvent> = React.PropsWithChildren<{
|
|
7
6
|
machineManager: IMachineManager<S, P>;
|
|
8
7
|
getServerSnapshot?: () => MachinesState<S>;
|
package/dist/FSMProvider.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { AnyEvent, IMachineManager, MachinesState, MachineStore } from "@lite-fsm/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
3
|
+
import type { FSMPersistLifecycle } from "./persistContext";
|
|
4
|
+
export type { FSMPersistLifecycle } from "./persistContext";
|
|
6
5
|
export type FSMContextProviderProps<S extends MachineStore, P extends AnyEvent = AnyEvent> = React.PropsWithChildren<{
|
|
7
6
|
machineManager: IMachineManager<S, P>;
|
|
8
7
|
getServerSnapshot?: () => MachinesState<S>;
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";"use client";var
|
|
1
|
+
"use strict";"use client";var le=Object.create;var v=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var me=Object.getOwnPropertyNames;var Me=Object.getPrototypeOf,fe=Object.prototype.hasOwnProperty;var he=(e,o)=>{for(var t in o)v(e,t,{get:o[t],enumerable:!0})},_=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of me(o))!fe.call(e,n)&&n!==t&&v(e,n,{get:()=>o[n],enumerable:!(r=de(o,n))||r.enumerable});return e};var S=(e,o,t)=>(t=e!=null?le(Me(e)):{},_(o||!e||!e.__esModule?v(t,"default",{value:e,enumerable:!0}):t,e)),xe=e=>_(v({},"__esModule",{value:!0}),e);var Ee={};he(Ee,{FSMContext:()=>l,FSMContextProvider:()=>Q,FSMHydrationBoundary:()=>N,defineMachine:()=>ae,useHydrateSnapshot:()=>$,useManager:()=>s,useSelector:()=>te,useTransition:()=>re});module.exports=xe(Ee);var V=S(require("react"),1),B="Hooks from @lite-fsm/react must be used within FSMContextProvider.",l=V.default.createContext(null);var i=S(require("react"),1);var x=S(require("react"),1),U=x.default.createContext(null),W=U.Provider,P=()=>x.default.useContext(U),j=x.default.createContext(null),g=j.Provider,F=()=>x.default.useContext(j);var q=S(require("react"),1);var s=()=>{let e=q.default.useContext(l);if(!e)throw new Error(B);return e};var b=S(require("react"),1),C=typeof window>"u"?b.default.useEffect:b.default.useLayoutEffect;var O=require("react/jsx-runtime"),K=(e,o,t,r)=>r!==null&&e!==null&&e.snapshot===o&&e.strategy===t&&e.actions===r,N=({snapshot:e,strategy:o,transitionAfterHydrate:t,children:r})=>{let n=s(),c=P(),m=F(),a=o??"merge",R=i.default.useRef(null),[u,M]=i.default.useState(null),w=i.default.useRef(null),[se,ie]=i.default.useState(null),p=i.default.useMemo(()=>{if(!t)return null;let f=Array.isArray(t)?t:[t];return f.length>0?f:null},[t]),y=c?.getState()??n.getState(),A=i.default.useMemo(()=>n.getHydratedState(e,{baseState:y,strategy:a}),[y,a,n,e]),ce=K(se,e,a,p),Se=u!==null&&u.committedState===y&&u.snapshot===e&&u.strategy===a,H=A!==y&&!ce&&!Se,D=m?.getState()??y,k=i.default.useMemo(()=>n.getHydratedState(e,{baseState:D,strategy:a}),[a,n,D,e]);C(()=>{let f=K(w.current,e,a,p),I=p!==null&&!f,L=H&&!f;if(!L&&!I)return;let T=R.current;if(L&&!(T?.baseState===y&&T.snapshot===e&&T.strategy===a)){n.hydrate(e,{strategy:a});let h={baseState:y,committedState:n.getState(),snapshot:e,strategy:a};R.current=h,M(h)}if(I&&p!==null){for(let ue of p)n.transition(ue);let h={snapshot:e,strategy:a,actions:p};w.current=h,ie(h)}},[y,H,a,n,e,p]);let ye=i.default.useMemo(()=>({getState:()=>A}),[A]),pe=i.default.useMemo(()=>({getState:()=>k}),[k]);return(0,O.jsx)(g,{value:pe,children:H?(0,O.jsx)(W,{value:ye,children:r}):r})};var d=S(require("react"),1);var z=S(require("react"),1),X=Symbol.for("@lite-fsm/react.persistContext"),ve={phase:"idle"},Pe={getStatus:()=>ve,subscribeStatus:()=>()=>{}},Y=globalThis,G=Y[X]??(Y[X]=z.default.createContext(null)),ge=e=>{let o=e;return e!==null&&typeof e=="object"&&typeof o.getStatus=="function"&&typeof o.subscribeStatus=="function"},J=(e,o)=>{if(e===void 0)return o?.serverFallback===!0?Pe:null;let t=Array.isArray(e)?e:[e],r=null;for(let n of t)if(ge(n)){if(r)return null;r=n}return r};var E=require("react/jsx-runtime"),Q=({children:e,getServerSnapshot:o,machineManager:t,persist:r})=>{let n=d.default.useMemo(()=>t,[t]),c=d.default.useMemo(()=>t.getState(),[t]),m=d.default.useMemo(()=>({getState:o??(()=>c)}),[o,c]),a=d.default.useMemo(()=>J(r,{serverFallback:typeof window>"u"}),[r]);return d.default.useEffect(()=>{if(r===void 0)return;let u=(Array.isArray(r)?r:[r]).map(M=>M.start());return()=>{for(let M of u)M()}},[r]),(0,E.jsx)(l.Provider,{value:n,children:(0,E.jsx)(G.Provider,{value:a,children:(0,E.jsx)(g,{value:m,children:e})})})};var Z=require("react");var $=(e,o)=>{let t=s(),r=o?.strategy??"merge",n=(0,Z.useRef)(null);C(()=>{n.current?.snapshot===e&&n.current.strategy===r||(t.hydrate(e,{strategy:r}),n.current={snapshot:e,strategy:r})},[t,e,r])};var ee=S(require("use-sync-external-store/shim/with-selector"),1);var{useSyncExternalStoreWithSelector:Fe}=ee.default;function te(e,o){let t=s(),r=P(),n=F(),c=r?.getState??t.getState,m=n?.getState??c;return Fe(t.onTransition,c,m,e,o)}var re=()=>s().transition;var oe=S(require("use-sync-external-store/shim/with-selector"),1),ne=require("@lite-fsm/core"),{useSyncExternalStoreWithSelector:Ce}=oe.default,ae=(e={})=>({create:o=>{let t=(0,ne.defineMachine)(e).create(o),r=(n,c)=>Ce(t.onTransition,t.getState,t.getState,n,c);return Object.assign(r,t),r}});0&&(module.exports={FSMContext,FSMContextProvider,FSMHydrationBoundary,defineMachine,useHydrateSnapshot,useManager,useSelector,useTransition});
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import
|
|
1
|
+
"use client";import Q from"react";var D="Hooks from @lite-fsm/react must be used within FSMContextProvider.",M=Q.createContext(null);import c from"react";import h from"react";var k=h.createContext(null),I=k.Provider,x=()=>h.useContext(k),L=h.createContext(null),v=L.Provider,P=()=>h.useContext(L);import Z from"react";var i=()=>{let e=Z.useContext(M);if(!e)throw new Error(D);return e};import _ from"react";var g=typeof window>"u"?_.useEffect:_.useLayoutEffect;import{jsx as B}from"react/jsx-runtime";var V=(e,n,r,t)=>t!==null&&e!==null&&e.snapshot===n&&e.strategy===r&&e.actions===t,$=({snapshot:e,strategy:n,transitionAfterHydrate:r,children:t})=>{let o=i(),s=x(),u=P(),a=n??"merge",F=c.useRef(null),[p,l]=c.useState(null),H=c.useRef(null),[K,N]=c.useState(null),y=c.useMemo(()=>{if(!r)return null;let d=Array.isArray(r)?r:[r];return d.length>0?d:null},[r]),S=s?.getState()??o.getState(),C=c.useMemo(()=>o.getHydratedState(e,{baseState:S,strategy:a}),[S,a,o,e]),X=V(K,e,a,y),Y=p!==null&&p.committedState===S&&p.snapshot===e&&p.strategy===a,E=C!==S&&!X&&!Y,T=u?.getState()??S,b=c.useMemo(()=>o.getHydratedState(e,{baseState:T,strategy:a}),[a,o,T,e]);g(()=>{let d=V(H.current,e,a,y),O=y!==null&&!d,w=E&&!d;if(!w&&!O)return;let R=F.current;if(w&&!(R?.baseState===S&&R.snapshot===e&&R.strategy===a)){o.hydrate(e,{strategy:a});let m={baseState:S,committedState:o.getState(),snapshot:e,strategy:a};F.current=m,l(m)}if(O&&y!==null){for(let J of y)o.transition(J);let m={snapshot:e,strategy:a,actions:y};H.current=m,N(m)}},[S,E,a,o,e,y]);let z=c.useMemo(()=>({getState:()=>C}),[C]),G=c.useMemo(()=>({getState:()=>b}),[b]);return B(v,{value:G,children:E?B(I,{value:z,children:t}):t})};import f from"react";import ee from"react";var U=Symbol.for("@lite-fsm/react.persistContext"),te={phase:"idle"},re={getStatus:()=>te,subscribeStatus:()=>()=>{}},W=globalThis,j=W[U]??(W[U]=ee.createContext(null)),oe=e=>{let n=e;return e!==null&&typeof e=="object"&&typeof n.getStatus=="function"&&typeof n.subscribeStatus=="function"},q=(e,n)=>{if(e===void 0)return n?.serverFallback===!0?re:null;let r=Array.isArray(e)?e:[e],t=null;for(let o of r)if(oe(o)){if(t)return null;t=o}return t};import{jsx as A}from"react/jsx-runtime";var ne=({children:e,getServerSnapshot:n,machineManager:r,persist:t})=>{let o=f.useMemo(()=>r,[r]),s=f.useMemo(()=>r.getState(),[r]),u=f.useMemo(()=>({getState:n??(()=>s)}),[n,s]),a=f.useMemo(()=>q(t,{serverFallback:typeof window>"u"}),[t]);return f.useEffect(()=>{if(t===void 0)return;let p=(Array.isArray(t)?t:[t]).map(l=>l.start());return()=>{for(let l of p)l()}},[t]),A(M.Provider,{value:o,children:A(j.Provider,{value:a,children:A(v,{value:u,children:e})})})};import{useRef as ae}from"react";var se=(e,n)=>{let r=i(),t=n?.strategy??"merge",o=ae(null);g(()=>{o.current?.snapshot===e&&o.current.strategy===t||(r.hydrate(e,{strategy:t}),o.current={snapshot:e,strategy:t})},[r,e,t])};import ie from"use-sync-external-store/shim/with-selector";var{useSyncExternalStoreWithSelector:ce}=ie;function Se(e,n){let r=i(),t=x(),o=P(),s=t?.getState??r.getState,u=o?.getState??s;return ce(r.onTransition,s,u,e,n)}var ye=()=>i().transition;import pe from"use-sync-external-store/shim/with-selector";import{defineMachine as ue}from"@lite-fsm/core";var{useSyncExternalStoreWithSelector:le}=pe,de=(e={})=>({create:n=>{let r=ue(e).create(n),t=(o,s)=>le(r.onTransition,r.getState,r.getState,o,s);return Object.assign(t,r),t}});export{M as FSMContext,ne as FSMContextProvider,$ as FSMHydrationBoundary,de as defineMachine,se as useHydrateSnapshot,i as useManager,Se as useSelector,ye as useTransition};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type FSMPersistStatusSource = {
|
|
3
|
+
getStatus(): unknown;
|
|
4
|
+
subscribeStatus(listener: () => void): () => void;
|
|
5
|
+
};
|
|
6
|
+
export type FSMPersistLifecycle = {
|
|
7
|
+
start(): () => void;
|
|
8
|
+
};
|
|
9
|
+
export declare const FSMPersistContext: React.Context<FSMPersistStatusSource | null>;
|
|
10
|
+
export declare const resolvePersistStatusSource: (persist: FSMPersistLifecycle | ReadonlyArray<FSMPersistLifecycle> | undefined, options?: {
|
|
11
|
+
serverFallback?: boolean;
|
|
12
|
+
}) => FSMPersistStatusSource | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type FSMPersistStatusSource = {
|
|
3
|
+
getStatus(): unknown;
|
|
4
|
+
subscribeStatus(listener: () => void): () => void;
|
|
5
|
+
};
|
|
6
|
+
export type FSMPersistLifecycle = {
|
|
7
|
+
start(): () => void;
|
|
8
|
+
};
|
|
9
|
+
export declare const FSMPersistContext: React.Context<FSMPersistStatusSource | null>;
|
|
10
|
+
export declare const resolvePersistStatusSource: (persist: FSMPersistLifecycle | ReadonlyArray<FSMPersistLifecycle> | undefined, options?: {
|
|
11
|
+
serverFallback?: boolean;
|
|
12
|
+
}) => FSMPersistStatusSource | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lite-fsm/react",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React bindings for lite-fsm",
|
|
6
6
|
"license": "MIT",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"use-sync-external-store": ">=1.2.0",
|
|
59
|
-
"@lite-fsm/core": "2.0.
|
|
59
|
+
"@lite-fsm/core": "2.0.3"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"react": ">=18.0.0"
|