@rxova/journey-react 0.5.0 → 0.6.1
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 +116 -4
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -12,10 +12,12 @@ npm i @rxova/journey-react
|
|
|
12
12
|
|
|
13
13
|
`@rxova/journey-react` is bindings-first:
|
|
14
14
|
|
|
15
|
-
- `createJourneyBindings(journey)` returns a typed bundle:
|
|
16
|
-
- `Provider`
|
|
17
|
-
- `StepRenderer`
|
|
18
|
-
- `useJourneyApi
|
|
15
|
+
- `createJourneyBindings(journey)` returns a typed bundle that contains:
|
|
16
|
+
- `Provider`
|
|
17
|
+
- `StepRenderer`
|
|
18
|
+
- `useJourneyApi`
|
|
19
|
+
- `useJourneySnapshot`
|
|
20
|
+
- `useJourneyMachine`
|
|
19
21
|
|
|
20
22
|
No per-hook generic arguments are needed at callsites.
|
|
21
23
|
|
|
@@ -67,6 +69,42 @@ export const App = () => {
|
|
|
67
69
|
};
|
|
68
70
|
```
|
|
69
71
|
|
|
72
|
+
## Split Files Pattern (Hooks In Steps)
|
|
73
|
+
|
|
74
|
+
If step components live in separate files and call Journey hooks, export bindings as `let`:
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
// journey-bindings.ts
|
|
78
|
+
import { createJourneyBindings, type JourneyReactDefinition } from "@rxova/journey-react";
|
|
79
|
+
import { Start, Review } from "./steps";
|
|
80
|
+
|
|
81
|
+
type StepId = "start" | "review";
|
|
82
|
+
type Ctx = { name: string };
|
|
83
|
+
|
|
84
|
+
export let bindings: ReturnType<typeof createJourneyBindings<Ctx, StepId>>;
|
|
85
|
+
|
|
86
|
+
const journey: JourneyReactDefinition<Ctx, StepId> = {
|
|
87
|
+
initial: "start",
|
|
88
|
+
context: { name: "" },
|
|
89
|
+
steps: {
|
|
90
|
+
start: { component: Start },
|
|
91
|
+
review: { component: Review }
|
|
92
|
+
},
|
|
93
|
+
transitions: [
|
|
94
|
+
{ from: "start", event: "goToNextStep", to: "review" },
|
|
95
|
+
{ from: "review", event: "completeJourney" }
|
|
96
|
+
]
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
bindings = createJourneyBindings(journey);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Hooks
|
|
103
|
+
|
|
104
|
+
- `useJourneySnapshot()` subscribes to the machine and rerenders on changes.
|
|
105
|
+
- `useJourneyApi()` returns typed commands.
|
|
106
|
+
- `useJourneyMachine()` returns the underlying core machine instance.
|
|
107
|
+
|
|
70
108
|
## Journey API Helpers
|
|
71
109
|
|
|
72
110
|
From `bindings.useJourneyApi()`:
|
|
@@ -86,3 +124,77 @@ Imperative jump is available through `send`:
|
|
|
86
124
|
```ts
|
|
87
125
|
await api.send({ type: "goToStepById", stepId: "review" });
|
|
88
126
|
```
|
|
127
|
+
|
|
128
|
+
## Provider Behavior
|
|
129
|
+
|
|
130
|
+
- `<Provider />` creates an internal core machine from the bound journey.
|
|
131
|
+
- `<Provider journey={...} />` lets you pass a different journey definition at runtime.
|
|
132
|
+
- Internal machine is preserved across `journey` prop changes by default.
|
|
133
|
+
- Set `resetOnJourneyChange` to rebuild internal machine when `journey` identity changes.
|
|
134
|
+
- `<Provider machine={externalMachine} />` uses your machine directly.
|
|
135
|
+
- `persistence` applies only when Provider owns the internal machine.
|
|
136
|
+
|
|
137
|
+
```tsx
|
|
138
|
+
<bindings.Provider journey={dynamicJourney} resetOnJourneyChange>
|
|
139
|
+
<bindings.StepRenderer />
|
|
140
|
+
</bindings.Provider>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Async and Error UI
|
|
144
|
+
|
|
145
|
+
Core async state is exposed via snapshot:
|
|
146
|
+
|
|
147
|
+
```tsx
|
|
148
|
+
const api = bindings.useJourneyApi();
|
|
149
|
+
const snapshot = bindings.useJourneySnapshot();
|
|
150
|
+
|
|
151
|
+
if (snapshot.async.isLoading) return <p>Working...</p>;
|
|
152
|
+
|
|
153
|
+
const currentAsync = snapshot.async.byStep[snapshot.currentStepId];
|
|
154
|
+
if (currentAsync.phase === "error") {
|
|
155
|
+
return (
|
|
156
|
+
<div>
|
|
157
|
+
<p>Something failed.</p>
|
|
158
|
+
<button onClick={() => api.clearStepError()}>Dismiss</button>
|
|
159
|
+
</div>
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Devtools Bridge
|
|
165
|
+
|
|
166
|
+
Use `useJourneyMachine()` and attach the devtools bridge from an effect:
|
|
167
|
+
|
|
168
|
+
```tsx
|
|
169
|
+
import React from "react";
|
|
170
|
+
import { attachJourneyDevtools } from "@rxova/journey-devtools-bridge";
|
|
171
|
+
|
|
172
|
+
const JourneyDevtoolsBridge = () => {
|
|
173
|
+
const machine = bindings.useJourneyMachine();
|
|
174
|
+
|
|
175
|
+
React.useEffect(() => {
|
|
176
|
+
return attachJourneyDevtools(machine, { label: "Signup" });
|
|
177
|
+
}, [machine]);
|
|
178
|
+
|
|
179
|
+
return null;
|
|
180
|
+
};
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Transition Ergonomics
|
|
184
|
+
|
|
185
|
+
`@rxova/journey-react` re-exports core transition builders:
|
|
186
|
+
|
|
187
|
+
```ts
|
|
188
|
+
import { createTransitions, tx } from "@rxova/journey-react";
|
|
189
|
+
|
|
190
|
+
const transitions = createTransitions(
|
|
191
|
+
tx.from("start").on("goToNextStep").to("review"),
|
|
192
|
+
tx.from("review").toComplete()
|
|
193
|
+
);
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## SSR and RSC Notes
|
|
197
|
+
|
|
198
|
+
- This package is a client entry (`"use client"`).
|
|
199
|
+
- In React Server Components environments, call bindings/hooks from client components.
|
|
200
|
+
- Server-side rendering is supported (Provider + StepRenderer render safely on the server).
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";"use client";var
|
|
1
|
+
"use strict";"use client";var A=Object.create;var l=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var D=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var Y=(t,e)=>{for(var n in e)l(t,n,{get:e[n],enumerable:!0})},M=(t,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of D(e))!j.call(t,o)&&o!==n&&l(t,o,{get:()=>e[o],enumerable:!(s=B(e,o))||s.enumerable});return t};var E=(t,e,n)=>(n=t!=null?A(F(t)):{},M(e||!t||!t.__esModule?l(n,"default",{value:t,enumerable:!0}):n,t)),_=t=>M(l({},"__esModule",{value:!0}),t);var O={};Y(O,{JOURNEY_ASYNC_PHASE:()=>a.JOURNEY_ASYNC_PHASE,JOURNEY_EVENT:()=>a.JOURNEY_EVENT,JOURNEY_STATUS:()=>a.JOURNEY_STATUS,JOURNEY_WILDCARD:()=>a.JOURNEY_WILDCARD,createJourneyBindings:()=>w,createTransitions:()=>a.createTransitions,tx:()=>a.tx});module.exports=_(O);var C=E(require("react"),1);var m=E(require("react"),1),x=require("@rxova/journey-core"),R=require("react/jsx-runtime"),P=({JourneyContext:t,boundJourney:e})=>({journey:s,machine:o,persistence:u,resetOnJourneyChange:d=!1,children:v})=>{let y=s??e,T=m.default.useRef(null),c=m.default.useRef(y),S=m.default.useRef(u),r=d&&c.current!==y,J=S.current!==u;if(!o&&(!T.current||r||J)){let N=u?{persistence:u}:void 0;T.current=(0,x.createJourneyMachine)(y,N),c.current=y,S.current=u}let U=o??T.current,V=o?y:c.current,b={machine:U,journey:V};return(0,R.jsx)(t.Provider,{value:b,children:v})};var i=require("react/jsx-runtime"),g=({useJourneySnapshot:t,useJourneyStore:e})=>({fallback:s=null})=>{let o=t(),{journey:u}=e("StepRenderer"),d=u.steps[o.currentStepId]?.component;return d?(0,i.jsx)(d,{}):(0,i.jsx)(i.Fragment,{children:s})};var p=E(require("react"),1),f=t=>()=>{let e=t("useJourneyApi").machine,n=p.default.useCallback(async r=>{await e.send(r)},[e]),s=p.default.useCallback(async()=>{await e.goToNextStep()},[e]),o=p.default.useCallback(async r=>{await e.terminateJourney(r)},[e]),u=p.default.useCallback(async r=>{await e.completeJourney(r)},[e]),d=p.default.useCallback(async r=>{await e.goToPreviousStep(r)},[e]),v=p.default.useCallback(async()=>{await e.goToLastVisitedStep()},[e]),y=p.default.useCallback(r=>{e.updateContext(r)},[e]),T=p.default.useCallback((r,J)=>{e.updateStepMetadata(r,J)},[e]),c=p.default.useCallback(r=>{e.clearStepError(r)},[e]),S=p.default.useCallback(()=>{e.resetMachine()},[e]);return{send:n,goToNextStep:s,terminateJourney:o,completeJourney:u,goToPreviousStep:d,goToLastVisitedStep:v,clearStepError:c,updateContext:y,updateStepMetadata:T,updateComponentMetadata:T,resetJourney:S}};var I=t=>()=>t("useJourneyMachine").machine;var h=E(require("react"),1),k=t=>()=>{let{machine:e}=t("useJourneySnapshot");return h.default.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot)};var w=t=>{let e=C.default.createContext(null),n=(y="hook")=>{let T=C.default.useContext(e);if(!T)throw new Error(`${y} must be used within bindings.Provider.`);return T},s=k(n),o=I(n),u=f(n),d=P({JourneyContext:e,boundJourney:t}),v=g({useJourneySnapshot:s,useJourneyStore:n});return{Provider:d,StepRenderer:v,useJourneyApi:u,useJourneyMachine:o,useJourneySnapshot:s}};var a=require("@rxova/journey-core");0&&(module.exports={JOURNEY_ASYNC_PHASE,JOURNEY_EVENT,JOURNEY_STATUS,JOURNEY_WILDCARD,createJourneyBindings,createTransitions,tx});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/bindings/index.tsx", "../src/bindings/Provider.tsx", "../src/bindings/StepRenderer.tsx", "../src/bindings/useJourneyApi.ts", "../src/bindings/useJourneyMachine.ts", "../src/bindings/useJourneySnapshot.ts"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nexport { createJourneyBindings } from \"./bindings\";\nexport type {\n JourneyApi,\n JourneyBindings,\n JourneyBindingsProviderProps,\n JourneyEventType,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyReactStep,\n JourneyStoreValue\n} from \"./types\";\n", "import React from \"react\";\n\nimport type {\n JourneyBindings,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\nimport { createProvider } from \"./Provider\";\nimport { createStepRenderer } from \"./StepRenderer\";\nimport { createUseJourneyApi } from \"./useJourneyApi\";\nimport { createUseJourneyMachine } from \"./useJourneyMachine\";\nimport { createUseJourneySnapshot } from \"./useJourneySnapshot\";\n\nexport const createJourneyBindings = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n boundJourney: JourneyReactDefinition<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n): JourneyBindings<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> => {\n const JourneyContext = React.createContext<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>(null);\n\n const useJourneyStore = (hookName = \"hook\") => {\n const value = React.useContext(JourneyContext);\n if (!value) {\n throw new Error(`${hookName} must be used within bindings.Provider.`);\n }\n return value;\n };\n\n const useJourneySnapshot = createUseJourneySnapshot(useJourneyStore);\n const useJourneyMachine = createUseJourneyMachine(useJourneyStore);\n const useJourneyApi = createUseJourneyApi(useJourneyStore);\n\n const Provider = createProvider({\n JourneyContext,\n boundJourney\n });\n\n const StepRenderer = createStepRenderer({\n useJourneySnapshot,\n useJourneyStore\n });\n\n return {\n Provider,\n StepRenderer,\n useJourneyApi,\n useJourneyMachine,\n useJourneySnapshot\n };\n};\n", "import React from \"react\";\n\nimport { createJourneyMachine } from \"@rxova/journey-core\";\nimport type {\n JourneyBindingsProviderProps,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\n\ntype ProviderFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n JourneyContext: React.Context<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>;\n boundJourney: JourneyReactDefinition<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >;\n};\n\nexport const createProvider = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n JourneyContext,\n boundJourney\n}: ProviderFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const Provider = ({\n journey,\n machine,\n persistence,\n resetOnJourneyChange = false,\n children\n }: JourneyBindingsProviderProps<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >) => {\n const incomingJourney = journey ?? boundJourney;\n const internalMachineRef = React.useRef<\n | JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>[\"machine\"]\n | null\n >(null);\n const journeyRef = React.useRef(incomingJourney);\n const persistenceRef = React.useRef(persistence);\n\n const shouldResetInternal = resetOnJourneyChange && journeyRef.current !== incomingJourney;\n const shouldResetPersistence = persistenceRef.current !== persistence;\n\n if (\n !machine &&\n (!internalMachineRef.current || shouldResetInternal || shouldResetPersistence)\n ) {\n const options = persistence ? { persistence } : undefined;\n internalMachineRef.current = createJourneyMachine(incomingJourney, options);\n journeyRef.current = incomingJourney;\n persistenceRef.current = persistence;\n }\n\n const resolvedMachine = machine ?? internalMachineRef.current!;\n const resolvedJourney = machine ? incomingJourney : journeyRef.current;\n const value: JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> = {\n machine: resolvedMachine,\n journey: resolvedJourney\n };\n\n return <JourneyContext.Provider value={value}>{children}</JourneyContext.Provider>;\n };\n\n return Provider;\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\ntype UseJourneySnapshot<\n TContext,\n TStepId extends string,\n TStepMeta = unknown\n> = () => JourneySnapshot<TContext, TStepId, TStepMeta>;\n\ntype StepRendererFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n useJourneySnapshot: UseJourneySnapshot<TContext, TStepId, TStepMeta>;\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n};\n\nexport const createStepRenderer = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n useJourneySnapshot,\n useJourneyStore\n}: StepRendererFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const StepRenderer = ({ fallback = null }: { fallback?: React.ReactNode }) => {\n const snapshot = useJourneySnapshot();\n const { journey } = useJourneyStore(\"StepRenderer\");\n\n const StepComponent = journey.steps[snapshot.currentStepId]?.component;\n\n if (!StepComponent) {\n return <>{fallback}</>;\n }\n\n return <StepComponent />;\n };\n\n return StepRenderer;\n};\n", "import React from \"react\";\n\nimport type { JourneyEvent, JourneyPayloadFor } from \"@rxova/journey-core\";\nimport type { JourneyEventType, JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyApi = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n const machine = useJourneyStore(\"useJourneyApi\").machine;\n\n const send = React.useCallback(\n async (event: JourneyEvent<TStepId, JourneyEventType<TCustomEvent>, TEventPayloadMap>) => {\n await machine.send(event);\n },\n [machine]\n );\n\n const goToNextStep = React.useCallback(async () => {\n await machine.goToNextStep();\n }, [machine]);\n\n const terminateJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"terminateJourney\"\n >\n ) => {\n await machine.terminateJourney(payload);\n },\n [machine]\n );\n\n const completeJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"completeJourney\"\n >\n ) => {\n await machine.completeJourney(payload);\n },\n [machine]\n );\n\n const goToPreviousStep = React.useCallback(\n async (steps?: number) => {\n await machine.goToPreviousStep(steps);\n },\n [machine]\n );\n\n const goToLastVisitedStep = React.useCallback(async () => {\n await machine.goToLastVisitedStep();\n }, [machine]);\n\n const updateContext = React.useCallback(\n (updater: (context: TContext) => TContext) => {\n machine.updateContext(updater);\n },\n [machine]\n );\n\n const updateStepMetadata = React.useCallback(\n (stepId: TStepId, updater: (metadata: TStepMeta) => TStepMeta) => {\n machine.updateStepMetadata(stepId, updater);\n },\n [machine]\n );\n\n const clearStepError = React.useCallback(\n (stepId?: TStepId) => {\n machine.clearStepError(stepId);\n },\n [machine]\n );\n\n const resetJourney = React.useCallback(() => {\n machine.resetMachine();\n }, [machine]);\n\n return {\n send,\n goToNextStep,\n terminateJourney,\n completeJourney,\n goToPreviousStep,\n goToLastVisitedStep,\n clearStepError,\n updateContext,\n updateStepMetadata,\n updateComponentMetadata: updateStepMetadata,\n resetJourney\n };\n };\n};\n", "import type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyMachine = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n return useJourneyStore(\"useJourneyMachine\").machine;\n };\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneySnapshot = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return (): JourneySnapshot<TContext, TStepId, TStepMeta> => {\n const { machine } = useJourneyStore(\"useJourneySnapshot\");\n return React.useSyncExternalStore(machine.subscribe, machine.getSnapshot, machine.getSnapshot);\n };\n};\n"],
|
|
5
|
-
"mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,
|
|
6
|
-
"names": ["index_exports", "__export", "createJourneyBindings", "__toCommonJS", "import_react", "import_react", "import_journey_core", "import_jsx_runtime", "createProvider", "JourneyContext", "boundJourney", "journey", "machine", "persistence", "resetOnJourneyChange", "children", "incomingJourney", "internalMachineRef", "React", "journeyRef", "persistenceRef", "shouldResetInternal", "shouldResetPersistence", "options", "resolvedMachine", "resolvedJourney", "value", "import_jsx_runtime", "createStepRenderer", "useJourneySnapshot", "useJourneyStore", "fallback", "snapshot", "journey", "StepComponent", "import_react", "createUseJourneyApi", "useJourneyStore", "machine", "send", "React", "event", "goToNextStep", "terminateJourney", "payload", "completeJourney", "goToPreviousStep", "steps", "goToLastVisitedStep", "updateContext", "updater", "updateStepMetadata", "stepId", "clearStepError", "resetJourney", "createUseJourneyMachine", "useJourneyStore", "import_react", "createUseJourneySnapshot", "useJourneyStore", "machine", "React", "createJourneyBindings", "boundJourney", "JourneyContext", "React", "useJourneyStore", "hookName", "value", "useJourneySnapshot", "createUseJourneySnapshot", "useJourneyMachine", "createUseJourneyMachine", "useJourneyApi", "createUseJourneyApi", "Provider", "createProvider", "StepRenderer", "createStepRenderer"]
|
|
4
|
+
"sourcesContent": ["// Mark this entry point as a Next.js App Router client module so it can be used in client components.\n\"use client\";\n\nexport { createJourneyBindings } from \"./bindings\";\nexport {\n createTransitions,\n tx,\n JOURNEY_STATUS,\n JOURNEY_EVENT,\n JOURNEY_ASYNC_PHASE,\n JOURNEY_WILDCARD\n} from \"@rxova/journey-core\";\nexport type { JourneyDefinition } from \"@rxova/journey-core\";\nexport type {\n JourneyApi,\n JourneyBindings,\n JourneyBindingsProviderProps,\n JourneyEventType,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyReactStep,\n JourneyStoreValue\n} from \"./types\";\n", "import React from \"react\";\n\nimport type {\n JourneyBindings,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\nimport { createProvider } from \"./Provider\";\nimport { createStepRenderer } from \"./StepRenderer\";\nimport { createUseJourneyApi } from \"./useJourneyApi\";\nimport { createUseJourneyMachine } from \"./useJourneyMachine\";\nimport { createUseJourneySnapshot } from \"./useJourneySnapshot\";\n\nexport const createJourneyBindings = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n boundJourney: JourneyReactDefinition<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n): JourneyBindings<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> => {\n const JourneyContext = React.createContext<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>(null);\n\n const useJourneyStore = (hookName = \"hook\") => {\n const value = React.useContext(JourneyContext);\n if (!value) {\n throw new Error(`${hookName} must be used within bindings.Provider.`);\n }\n return value;\n };\n\n const useJourneySnapshot = createUseJourneySnapshot(useJourneyStore);\n const useJourneyMachine = createUseJourneyMachine(useJourneyStore);\n const useJourneyApi = createUseJourneyApi(useJourneyStore);\n\n const Provider = createProvider({\n JourneyContext,\n boundJourney\n });\n\n const StepRenderer = createStepRenderer({\n useJourneySnapshot,\n useJourneyStore\n });\n\n return {\n Provider,\n StepRenderer,\n useJourneyApi,\n useJourneyMachine,\n useJourneySnapshot\n };\n};\n", "import React from \"react\";\n\nimport { createJourneyMachine } from \"@rxova/journey-core\";\nimport type {\n JourneyBindingsProviderProps,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\n\ntype ProviderFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n JourneyContext: React.Context<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>;\n boundJourney: JourneyReactDefinition<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >;\n};\n\nexport const createProvider = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n JourneyContext,\n boundJourney\n}: ProviderFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const Provider = ({\n journey,\n machine,\n persistence,\n resetOnJourneyChange = false,\n children\n }: JourneyBindingsProviderProps<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >) => {\n const incomingJourney = journey ?? boundJourney;\n const internalMachineRef = React.useRef<\n | JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>[\"machine\"]\n | null\n >(null);\n const journeyRef = React.useRef(incomingJourney);\n const persistenceRef = React.useRef(persistence);\n\n const shouldResetInternal = resetOnJourneyChange && journeyRef.current !== incomingJourney;\n const shouldResetPersistence = persistenceRef.current !== persistence;\n\n if (\n !machine &&\n (!internalMachineRef.current || shouldResetInternal || shouldResetPersistence)\n ) {\n const options = persistence ? { persistence } : undefined;\n internalMachineRef.current = createJourneyMachine(incomingJourney, options);\n journeyRef.current = incomingJourney;\n persistenceRef.current = persistence;\n }\n\n const resolvedMachine = machine ?? internalMachineRef.current!;\n const resolvedJourney = machine ? incomingJourney : journeyRef.current;\n const value: JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> = {\n machine: resolvedMachine,\n journey: resolvedJourney\n };\n\n return <JourneyContext.Provider value={value}>{children}</JourneyContext.Provider>;\n };\n\n return Provider;\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\ntype UseJourneySnapshot<\n TContext,\n TStepId extends string,\n TStepMeta = unknown\n> = () => JourneySnapshot<TContext, TStepId, TStepMeta>;\n\ntype StepRendererFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n useJourneySnapshot: UseJourneySnapshot<TContext, TStepId, TStepMeta>;\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n};\n\nexport const createStepRenderer = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n useJourneySnapshot,\n useJourneyStore\n}: StepRendererFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const StepRenderer = ({ fallback = null }: { fallback?: React.ReactNode }) => {\n const snapshot = useJourneySnapshot();\n const { journey } = useJourneyStore(\"StepRenderer\");\n\n const StepComponent = journey.steps[snapshot.currentStepId]?.component;\n\n if (!StepComponent) {\n return <>{fallback}</>;\n }\n\n return <StepComponent />;\n };\n\n return StepRenderer;\n};\n", "import React from \"react\";\n\nimport type { JourneyEvent, JourneyPayloadFor } from \"@rxova/journey-core\";\nimport type { JourneyEventType, JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyApi = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n const machine = useJourneyStore(\"useJourneyApi\").machine;\n\n const send = React.useCallback(\n async (event: JourneyEvent<TStepId, JourneyEventType<TCustomEvent>, TEventPayloadMap>) => {\n await machine.send(event);\n },\n [machine]\n );\n\n const goToNextStep = React.useCallback(async () => {\n await machine.goToNextStep();\n }, [machine]);\n\n const terminateJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"terminateJourney\"\n >\n ) => {\n await machine.terminateJourney(payload);\n },\n [machine]\n );\n\n const completeJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"completeJourney\"\n >\n ) => {\n await machine.completeJourney(payload);\n },\n [machine]\n );\n\n const goToPreviousStep = React.useCallback(\n async (steps?: number) => {\n await machine.goToPreviousStep(steps);\n },\n [machine]\n );\n\n const goToLastVisitedStep = React.useCallback(async () => {\n await machine.goToLastVisitedStep();\n }, [machine]);\n\n const updateContext = React.useCallback(\n (updater: (context: TContext) => TContext) => {\n machine.updateContext(updater);\n },\n [machine]\n );\n\n const updateStepMetadata = React.useCallback(\n (stepId: TStepId, updater: (metadata: TStepMeta) => TStepMeta) => {\n machine.updateStepMetadata(stepId, updater);\n },\n [machine]\n );\n\n const clearStepError = React.useCallback(\n (stepId?: TStepId) => {\n machine.clearStepError(stepId);\n },\n [machine]\n );\n\n const resetJourney = React.useCallback(() => {\n machine.resetMachine();\n }, [machine]);\n\n return {\n send,\n goToNextStep,\n terminateJourney,\n completeJourney,\n goToPreviousStep,\n goToLastVisitedStep,\n clearStepError,\n updateContext,\n updateStepMetadata,\n updateComponentMetadata: updateStepMetadata,\n resetJourney\n };\n };\n};\n", "import type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyMachine = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n return useJourneyStore(\"useJourneyMachine\").machine;\n };\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneySnapshot = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return (): JourneySnapshot<TContext, TStepId, TStepMeta> => {\n const { machine } = useJourneyStore(\"useJourneySnapshot\");\n return React.useSyncExternalStore(machine.subscribe, machine.getSnapshot, machine.getSnapshot);\n };\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["index_exports", "__export", "createJourneyBindings", "__toCommonJS", "import_react", "import_react", "import_journey_core", "import_jsx_runtime", "createProvider", "JourneyContext", "boundJourney", "journey", "machine", "persistence", "resetOnJourneyChange", "children", "incomingJourney", "internalMachineRef", "React", "journeyRef", "persistenceRef", "shouldResetInternal", "shouldResetPersistence", "options", "resolvedMachine", "resolvedJourney", "value", "import_jsx_runtime", "createStepRenderer", "useJourneySnapshot", "useJourneyStore", "fallback", "snapshot", "journey", "StepComponent", "import_react", "createUseJourneyApi", "useJourneyStore", "machine", "send", "React", "event", "goToNextStep", "terminateJourney", "payload", "completeJourney", "goToPreviousStep", "steps", "goToLastVisitedStep", "updateContext", "updater", "updateStepMetadata", "stepId", "clearStepError", "resetJourney", "createUseJourneyMachine", "useJourneyStore", "import_react", "createUseJourneySnapshot", "useJourneyStore", "machine", "React", "createJourneyBindings", "boundJourney", "JourneyContext", "React", "useJourneyStore", "hookName", "value", "useJourneySnapshot", "createUseJourneySnapshot", "useJourneyMachine", "createUseJourneyMachine", "useJourneyApi", "createUseJourneyApi", "Provider", "createProvider", "StepRenderer", "createStepRenderer", "import_journey_core"]
|
|
7
7
|
}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { createJourneyBindings } from "./bindings";
|
|
2
|
+
export { createTransitions, tx, JOURNEY_STATUS, JOURNEY_EVENT, JOURNEY_ASYNC_PHASE, JOURNEY_WILDCARD } from "@rxova/journey-core";
|
|
3
|
+
export type { JourneyDefinition } from "@rxova/journey-core";
|
|
2
4
|
export type { JourneyApi, JourneyBindings, JourneyBindingsProviderProps, JourneyEventType, JourneyReactDefinition, JourneyReactEventPayloadMap, JourneyReactStep, JourneyStoreValue } from "./types";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { createJourneyBindings } from "./bindings";
|
|
2
|
+
export { createTransitions, tx, JOURNEY_STATUS, JOURNEY_EVENT, JOURNEY_ASYNC_PHASE, JOURNEY_WILDCARD } from "@rxova/journey-core";
|
|
3
|
+
export type { JourneyDefinition } from "@rxova/journey-core";
|
|
2
4
|
export type { JourneyApi, JourneyBindings, JourneyBindingsProviderProps, JourneyEventType, JourneyReactDefinition, JourneyReactEventPayloadMap, JourneyReactStep, JourneyStoreValue } from "./types";
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import x from"react";import S from"react";import{createJourneyMachine as I}from"@rxova/journey-core";import{jsx as h}from"react/jsx-runtime";var l=({JourneyContext:n,boundJourney:e})=>({journey:y,machine:a,persistence:o,resetOnJourneyChange:T=!1,children:d})=>{let s=y??e,u=S.useRef(null),v=S.useRef(s),c=S.useRef(o),t=T&&v.current!==s,i=c.current!==o;if(!a&&(!u.current||t||i)){let f=o?{persistence:o}:void 0;u.current=I(s,f),v.current=s,c.current=o}let P=a??u.current,R=a?s:v.current,g={machine:P,journey:R};return h(n.Provider,{value:g,children:d})};import{Fragment as k,jsx as E}from"react/jsx-runtime";var m=({useJourneySnapshot:n,useJourneyStore:e})=>({fallback:y=null})=>{let a=n(),{journey:o}=e("StepRenderer"),T=o.steps[a.currentStepId]?.component;return T?E(T,{}):E(k,{children:y})};import r from"react";var J=n=>()=>{let e=n("useJourneyApi").machine,p=r.useCallback(async t=>{await e.send(t)},[e]),y=r.useCallback(async()=>{await e.goToNextStep()},[e]),a=r.useCallback(async t=>{await e.terminateJourney(t)},[e]),o=r.useCallback(async t=>{await e.completeJourney(t)},[e]),T=r.useCallback(async t=>{await e.goToPreviousStep(t)},[e]),d=r.useCallback(async()=>{await e.goToLastVisitedStep()},[e]),s=r.useCallback(t=>{e.updateContext(t)},[e]),u=r.useCallback((t,i)=>{e.updateStepMetadata(t,i)},[e]),v=r.useCallback(t=>{e.clearStepError(t)},[e]),c=r.useCallback(()=>{e.resetMachine()},[e]);return{send:p,goToNextStep:y,terminateJourney:a,completeJourney:o,goToPreviousStep:T,goToLastVisitedStep:d,clearStepError:v,updateContext:s,updateStepMetadata:u,updateComponentMetadata:u,resetJourney:c}};var C=n=>()=>n("useJourneyMachine").machine;import w from"react";var M=n=>()=>{let{machine:e}=n("useJourneySnapshot");return w.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot)};var
|
|
1
|
+
"use client";import x from"react";import S from"react";import{createJourneyMachine as I}from"@rxova/journey-core";import{jsx as h}from"react/jsx-runtime";var l=({JourneyContext:n,boundJourney:e})=>({journey:y,machine:a,persistence:o,resetOnJourneyChange:T=!1,children:d})=>{let s=y??e,u=S.useRef(null),v=S.useRef(s),c=S.useRef(o),t=T&&v.current!==s,i=c.current!==o;if(!a&&(!u.current||t||i)){let f=o?{persistence:o}:void 0;u.current=I(s,f),v.current=s,c.current=o}let P=a??u.current,R=a?s:v.current,g={machine:P,journey:R};return h(n.Provider,{value:g,children:d})};import{Fragment as k,jsx as E}from"react/jsx-runtime";var m=({useJourneySnapshot:n,useJourneyStore:e})=>({fallback:y=null})=>{let a=n(),{journey:o}=e("StepRenderer"),T=o.steps[a.currentStepId]?.component;return T?E(T,{}):E(k,{children:y})};import r from"react";var J=n=>()=>{let e=n("useJourneyApi").machine,p=r.useCallback(async t=>{await e.send(t)},[e]),y=r.useCallback(async()=>{await e.goToNextStep()},[e]),a=r.useCallback(async t=>{await e.terminateJourney(t)},[e]),o=r.useCallback(async t=>{await e.completeJourney(t)},[e]),T=r.useCallback(async t=>{await e.goToPreviousStep(t)},[e]),d=r.useCallback(async()=>{await e.goToLastVisitedStep()},[e]),s=r.useCallback(t=>{e.updateContext(t)},[e]),u=r.useCallback((t,i)=>{e.updateStepMetadata(t,i)},[e]),v=r.useCallback(t=>{e.clearStepError(t)},[e]),c=r.useCallback(()=>{e.resetMachine()},[e]);return{send:p,goToNextStep:y,terminateJourney:a,completeJourney:o,goToPreviousStep:T,goToLastVisitedStep:d,clearStepError:v,updateContext:s,updateStepMetadata:u,updateComponentMetadata:u,resetJourney:c}};var C=n=>()=>n("useJourneyMachine").machine;import w from"react";var M=n=>()=>{let{machine:e}=n("useJourneySnapshot");return w.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot)};var U=n=>{let e=x.createContext(null),p=(s="hook")=>{let u=x.useContext(e);if(!u)throw new Error(`${s} must be used within bindings.Provider.`);return u},y=M(p),a=C(p),o=J(p),T=l({JourneyContext:e,boundJourney:n}),d=m({useJourneySnapshot:y,useJourneyStore:p});return{Provider:T,StepRenderer:d,useJourneyApi:o,useJourneyMachine:a,useJourneySnapshot:y}};import{createTransitions as Z,tx as ee,JOURNEY_STATUS as te,JOURNEY_EVENT as ne,JOURNEY_ASYNC_PHASE as oe,JOURNEY_WILDCARD as re}from"@rxova/journey-core";export{oe as JOURNEY_ASYNC_PHASE,ne as JOURNEY_EVENT,te as JOURNEY_STATUS,re as JOURNEY_WILDCARD,U as createJourneyBindings,Z as createTransitions,ee as tx};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/bindings/index.tsx", "../src/bindings/Provider.tsx", "../src/bindings/StepRenderer.tsx", "../src/bindings/useJourneyApi.ts", "../src/bindings/useJourneyMachine.ts", "../src/bindings/useJourneySnapshot.ts"],
|
|
4
|
-
"sourcesContent": ["import React from \"react\";\n\nimport type {\n JourneyBindings,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\nimport { createProvider } from \"./Provider\";\nimport { createStepRenderer } from \"./StepRenderer\";\nimport { createUseJourneyApi } from \"./useJourneyApi\";\nimport { createUseJourneyMachine } from \"./useJourneyMachine\";\nimport { createUseJourneySnapshot } from \"./useJourneySnapshot\";\n\nexport const createJourneyBindings = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n boundJourney: JourneyReactDefinition<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n): JourneyBindings<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> => {\n const JourneyContext = React.createContext<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>(null);\n\n const useJourneyStore = (hookName = \"hook\") => {\n const value = React.useContext(JourneyContext);\n if (!value) {\n throw new Error(`${hookName} must be used within bindings.Provider.`);\n }\n return value;\n };\n\n const useJourneySnapshot = createUseJourneySnapshot(useJourneyStore);\n const useJourneyMachine = createUseJourneyMachine(useJourneyStore);\n const useJourneyApi = createUseJourneyApi(useJourneyStore);\n\n const Provider = createProvider({\n JourneyContext,\n boundJourney\n });\n\n const StepRenderer = createStepRenderer({\n useJourneySnapshot,\n useJourneyStore\n });\n\n return {\n Provider,\n StepRenderer,\n useJourneyApi,\n useJourneyMachine,\n useJourneySnapshot\n };\n};\n", "import React from \"react\";\n\nimport { createJourneyMachine } from \"@rxova/journey-core\";\nimport type {\n JourneyBindingsProviderProps,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\n\ntype ProviderFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n JourneyContext: React.Context<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>;\n boundJourney: JourneyReactDefinition<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >;\n};\n\nexport const createProvider = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n JourneyContext,\n boundJourney\n}: ProviderFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const Provider = ({\n journey,\n machine,\n persistence,\n resetOnJourneyChange = false,\n children\n }: JourneyBindingsProviderProps<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >) => {\n const incomingJourney = journey ?? boundJourney;\n const internalMachineRef = React.useRef<\n | JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>[\"machine\"]\n | null\n >(null);\n const journeyRef = React.useRef(incomingJourney);\n const persistenceRef = React.useRef(persistence);\n\n const shouldResetInternal = resetOnJourneyChange && journeyRef.current !== incomingJourney;\n const shouldResetPersistence = persistenceRef.current !== persistence;\n\n if (\n !machine &&\n (!internalMachineRef.current || shouldResetInternal || shouldResetPersistence)\n ) {\n const options = persistence ? { persistence } : undefined;\n internalMachineRef.current = createJourneyMachine(incomingJourney, options);\n journeyRef.current = incomingJourney;\n persistenceRef.current = persistence;\n }\n\n const resolvedMachine = machine ?? internalMachineRef.current!;\n const resolvedJourney = machine ? incomingJourney : journeyRef.current;\n const value: JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> = {\n machine: resolvedMachine,\n journey: resolvedJourney\n };\n\n return <JourneyContext.Provider value={value}>{children}</JourneyContext.Provider>;\n };\n\n return Provider;\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\ntype UseJourneySnapshot<\n TContext,\n TStepId extends string,\n TStepMeta = unknown\n> = () => JourneySnapshot<TContext, TStepId, TStepMeta>;\n\ntype StepRendererFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n useJourneySnapshot: UseJourneySnapshot<TContext, TStepId, TStepMeta>;\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n};\n\nexport const createStepRenderer = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n useJourneySnapshot,\n useJourneyStore\n}: StepRendererFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const StepRenderer = ({ fallback = null }: { fallback?: React.ReactNode }) => {\n const snapshot = useJourneySnapshot();\n const { journey } = useJourneyStore(\"StepRenderer\");\n\n const StepComponent = journey.steps[snapshot.currentStepId]?.component;\n\n if (!StepComponent) {\n return <>{fallback}</>;\n }\n\n return <StepComponent />;\n };\n\n return StepRenderer;\n};\n", "import React from \"react\";\n\nimport type { JourneyEvent, JourneyPayloadFor } from \"@rxova/journey-core\";\nimport type { JourneyEventType, JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyApi = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n const machine = useJourneyStore(\"useJourneyApi\").machine;\n\n const send = React.useCallback(\n async (event: JourneyEvent<TStepId, JourneyEventType<TCustomEvent>, TEventPayloadMap>) => {\n await machine.send(event);\n },\n [machine]\n );\n\n const goToNextStep = React.useCallback(async () => {\n await machine.goToNextStep();\n }, [machine]);\n\n const terminateJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"terminateJourney\"\n >\n ) => {\n await machine.terminateJourney(payload);\n },\n [machine]\n );\n\n const completeJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"completeJourney\"\n >\n ) => {\n await machine.completeJourney(payload);\n },\n [machine]\n );\n\n const goToPreviousStep = React.useCallback(\n async (steps?: number) => {\n await machine.goToPreviousStep(steps);\n },\n [machine]\n );\n\n const goToLastVisitedStep = React.useCallback(async () => {\n await machine.goToLastVisitedStep();\n }, [machine]);\n\n const updateContext = React.useCallback(\n (updater: (context: TContext) => TContext) => {\n machine.updateContext(updater);\n },\n [machine]\n );\n\n const updateStepMetadata = React.useCallback(\n (stepId: TStepId, updater: (metadata: TStepMeta) => TStepMeta) => {\n machine.updateStepMetadata(stepId, updater);\n },\n [machine]\n );\n\n const clearStepError = React.useCallback(\n (stepId?: TStepId) => {\n machine.clearStepError(stepId);\n },\n [machine]\n );\n\n const resetJourney = React.useCallback(() => {\n machine.resetMachine();\n }, [machine]);\n\n return {\n send,\n goToNextStep,\n terminateJourney,\n completeJourney,\n goToPreviousStep,\n goToLastVisitedStep,\n clearStepError,\n updateContext,\n updateStepMetadata,\n updateComponentMetadata: updateStepMetadata,\n resetJourney\n };\n };\n};\n", "import type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyMachine = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n return useJourneyStore(\"useJourneyMachine\").machine;\n };\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneySnapshot = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return (): JourneySnapshot<TContext, TStepId, TStepMeta> => {\n const { machine } = useJourneyStore(\"useJourneySnapshot\");\n return React.useSyncExternalStore(machine.subscribe, machine.getSnapshot, machine.getSnapshot);\n };\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "React", "createJourneyMachine", "jsx", "createProvider", "JourneyContext", "boundJourney", "journey", "machine", "persistence", "resetOnJourneyChange", "children", "incomingJourney", "internalMachineRef", "journeyRef", "persistenceRef", "shouldResetInternal", "shouldResetPersistence", "options", "resolvedMachine", "resolvedJourney", "value", "Fragment", "jsx", "createStepRenderer", "useJourneySnapshot", "useJourneyStore", "fallback", "snapshot", "journey", "StepComponent", "React", "createUseJourneyApi", "useJourneyStore", "machine", "send", "event", "goToNextStep", "terminateJourney", "payload", "completeJourney", "goToPreviousStep", "steps", "goToLastVisitedStep", "updateContext", "updater", "updateStepMetadata", "stepId", "clearStepError", "resetJourney", "createUseJourneyMachine", "useJourneyStore", "React", "createUseJourneySnapshot", "useJourneyStore", "machine", "createJourneyBindings", "boundJourney", "JourneyContext", "React", "useJourneyStore", "hookName", "value", "useJourneySnapshot", "createUseJourneySnapshot", "useJourneyMachine", "createUseJourneyMachine", "useJourneyApi", "createUseJourneyApi", "Provider", "createProvider", "StepRenderer", "createStepRenderer"]
|
|
3
|
+
"sources": ["../src/bindings/index.tsx", "../src/bindings/Provider.tsx", "../src/bindings/StepRenderer.tsx", "../src/bindings/useJourneyApi.ts", "../src/bindings/useJourneyMachine.ts", "../src/bindings/useJourneySnapshot.ts", "../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["import React from \"react\";\n\nimport type {\n JourneyBindings,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\nimport { createProvider } from \"./Provider\";\nimport { createStepRenderer } from \"./StepRenderer\";\nimport { createUseJourneyApi } from \"./useJourneyApi\";\nimport { createUseJourneyMachine } from \"./useJourneyMachine\";\nimport { createUseJourneySnapshot } from \"./useJourneySnapshot\";\n\nexport const createJourneyBindings = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n boundJourney: JourneyReactDefinition<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n): JourneyBindings<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> => {\n const JourneyContext = React.createContext<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>(null);\n\n const useJourneyStore = (hookName = \"hook\") => {\n const value = React.useContext(JourneyContext);\n if (!value) {\n throw new Error(`${hookName} must be used within bindings.Provider.`);\n }\n return value;\n };\n\n const useJourneySnapshot = createUseJourneySnapshot(useJourneyStore);\n const useJourneyMachine = createUseJourneyMachine(useJourneyStore);\n const useJourneyApi = createUseJourneyApi(useJourneyStore);\n\n const Provider = createProvider({\n JourneyContext,\n boundJourney\n });\n\n const StepRenderer = createStepRenderer({\n useJourneySnapshot,\n useJourneyStore\n });\n\n return {\n Provider,\n StepRenderer,\n useJourneyApi,\n useJourneyMachine,\n useJourneySnapshot\n };\n};\n", "import React from \"react\";\n\nimport { createJourneyMachine } from \"@rxova/journey-core\";\nimport type {\n JourneyBindingsProviderProps,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyStoreValue\n} from \"../types\";\n\ntype ProviderFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n JourneyContext: React.Context<JourneyStoreValue<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n > | null>;\n boundJourney: JourneyReactDefinition<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >;\n};\n\nexport const createProvider = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n JourneyContext,\n boundJourney\n}: ProviderFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const Provider = ({\n journey,\n machine,\n persistence,\n resetOnJourneyChange = false,\n children\n }: JourneyBindingsProviderProps<\n TContext,\n TStepId,\n TCustomEvent,\n TEventPayloadMap,\n TStepMeta\n >) => {\n const incomingJourney = journey ?? boundJourney;\n const internalMachineRef = React.useRef<\n | JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>[\"machine\"]\n | null\n >(null);\n const journeyRef = React.useRef(incomingJourney);\n const persistenceRef = React.useRef(persistence);\n\n const shouldResetInternal = resetOnJourneyChange && journeyRef.current !== incomingJourney;\n const shouldResetPersistence = persistenceRef.current !== persistence;\n\n if (\n !machine &&\n (!internalMachineRef.current || shouldResetInternal || shouldResetPersistence)\n ) {\n const options = persistence ? { persistence } : undefined;\n internalMachineRef.current = createJourneyMachine(incomingJourney, options);\n journeyRef.current = incomingJourney;\n persistenceRef.current = persistence;\n }\n\n const resolvedMachine = machine ?? internalMachineRef.current!;\n const resolvedJourney = machine ? incomingJourney : journeyRef.current;\n const value: JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta> = {\n machine: resolvedMachine,\n journey: resolvedJourney\n };\n\n return <JourneyContext.Provider value={value}>{children}</JourneyContext.Provider>;\n };\n\n return Provider;\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\ntype UseJourneySnapshot<\n TContext,\n TStepId extends string,\n TStepMeta = unknown\n> = () => JourneySnapshot<TContext, TStepId, TStepMeta>;\n\ntype StepRendererFactoryProps<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = {\n useJourneySnapshot: UseJourneySnapshot<TContext, TStepId, TStepMeta>;\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n};\n\nexport const createStepRenderer = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>({\n useJourneySnapshot,\n useJourneyStore\n}: StepRendererFactoryProps<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>) => {\n const StepRenderer = ({ fallback = null }: { fallback?: React.ReactNode }) => {\n const snapshot = useJourneySnapshot();\n const { journey } = useJourneyStore(\"StepRenderer\");\n\n const StepComponent = journey.steps[snapshot.currentStepId]?.component;\n\n if (!StepComponent) {\n return <>{fallback}</>;\n }\n\n return <StepComponent />;\n };\n\n return StepRenderer;\n};\n", "import React from \"react\";\n\nimport type { JourneyEvent, JourneyPayloadFor } from \"@rxova/journey-core\";\nimport type { JourneyEventType, JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyApi = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n const machine = useJourneyStore(\"useJourneyApi\").machine;\n\n const send = React.useCallback(\n async (event: JourneyEvent<TStepId, JourneyEventType<TCustomEvent>, TEventPayloadMap>) => {\n await machine.send(event);\n },\n [machine]\n );\n\n const goToNextStep = React.useCallback(async () => {\n await machine.goToNextStep();\n }, [machine]);\n\n const terminateJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"terminateJourney\"\n >\n ) => {\n await machine.terminateJourney(payload);\n },\n [machine]\n );\n\n const completeJourney = React.useCallback(\n async (\n payload?: JourneyPayloadFor<\n JourneyEventType<TCustomEvent>,\n TEventPayloadMap,\n \"completeJourney\"\n >\n ) => {\n await machine.completeJourney(payload);\n },\n [machine]\n );\n\n const goToPreviousStep = React.useCallback(\n async (steps?: number) => {\n await machine.goToPreviousStep(steps);\n },\n [machine]\n );\n\n const goToLastVisitedStep = React.useCallback(async () => {\n await machine.goToLastVisitedStep();\n }, [machine]);\n\n const updateContext = React.useCallback(\n (updater: (context: TContext) => TContext) => {\n machine.updateContext(updater);\n },\n [machine]\n );\n\n const updateStepMetadata = React.useCallback(\n (stepId: TStepId, updater: (metadata: TStepMeta) => TStepMeta) => {\n machine.updateStepMetadata(stepId, updater);\n },\n [machine]\n );\n\n const clearStepError = React.useCallback(\n (stepId?: TStepId) => {\n machine.clearStepError(stepId);\n },\n [machine]\n );\n\n const resetJourney = React.useCallback(() => {\n machine.resetMachine();\n }, [machine]);\n\n return {\n send,\n goToNextStep,\n terminateJourney,\n completeJourney,\n goToPreviousStep,\n goToLastVisitedStep,\n clearStepError,\n updateContext,\n updateStepMetadata,\n updateComponentMetadata: updateStepMetadata,\n resetJourney\n };\n };\n};\n", "import type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneyMachine = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return () => {\n return useJourneyStore(\"useJourneyMachine\").machine;\n };\n};\n", "import React from \"react\";\n\nimport type { JourneySnapshot } from \"@rxova/journey-core\";\nimport type { JourneyReactEventPayloadMap, JourneyStoreValue } from \"../types\";\n\ntype UseJourneyStore<\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n> = (\n hookName?: string\n) => JourneyStoreValue<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>;\n\nexport const createUseJourneySnapshot = <\n TContext,\n TStepId extends string,\n TCustomEvent extends string = never,\n TEventPayloadMap extends JourneyReactEventPayloadMap<TCustomEvent> = Record<never, never>,\n TStepMeta = unknown\n>(\n useJourneyStore: UseJourneyStore<TContext, TStepId, TCustomEvent, TEventPayloadMap, TStepMeta>\n) => {\n return (): JourneySnapshot<TContext, TStepId, TStepMeta> => {\n const { machine } = useJourneyStore(\"useJourneySnapshot\");\n return React.useSyncExternalStore(machine.subscribe, machine.getSnapshot, machine.getSnapshot);\n };\n};\n", "// Mark this entry point as a Next.js App Router client module so it can be used in client components.\n\"use client\";\n\nexport { createJourneyBindings } from \"./bindings\";\nexport {\n createTransitions,\n tx,\n JOURNEY_STATUS,\n JOURNEY_EVENT,\n JOURNEY_ASYNC_PHASE,\n JOURNEY_WILDCARD\n} from \"@rxova/journey-core\";\nexport type { JourneyDefinition } from \"@rxova/journey-core\";\nexport type {\n JourneyApi,\n JourneyBindings,\n JourneyBindingsProviderProps,\n JourneyEventType,\n JourneyReactDefinition,\n JourneyReactEventPayloadMap,\n JourneyReactStep,\n JourneyStoreValue\n} from \"./types\";\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "React", "createJourneyMachine", "jsx", "createProvider", "JourneyContext", "boundJourney", "journey", "machine", "persistence", "resetOnJourneyChange", "children", "incomingJourney", "internalMachineRef", "journeyRef", "persistenceRef", "shouldResetInternal", "shouldResetPersistence", "options", "resolvedMachine", "resolvedJourney", "value", "Fragment", "jsx", "createStepRenderer", "useJourneySnapshot", "useJourneyStore", "fallback", "snapshot", "journey", "StepComponent", "React", "createUseJourneyApi", "useJourneyStore", "machine", "send", "event", "goToNextStep", "terminateJourney", "payload", "completeJourney", "goToPreviousStep", "steps", "goToLastVisitedStep", "updateContext", "updater", "updateStepMetadata", "stepId", "clearStepError", "resetJourney", "createUseJourneyMachine", "useJourneyStore", "React", "createUseJourneySnapshot", "useJourneyStore", "machine", "createJourneyBindings", "boundJourney", "JourneyContext", "React", "useJourneyStore", "hookName", "value", "useJourneySnapshot", "createUseJourneySnapshot", "useJourneyMachine", "createUseJourneyMachine", "useJourneyApi", "createUseJourneyApi", "Provider", "createProvider", "StepRenderer", "createStepRenderer", "createTransitions", "tx", "JOURNEY_STATUS", "JOURNEY_EVENT", "JOURNEY_ASYNC_PHASE", "JOURNEY_WILDCARD"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rxova/journey-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "React bindings for journey.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
],
|
|
48
48
|
"sideEffects": false,
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@rxova/journey-core": "^0.
|
|
50
|
+
"@rxova/journey-core": "^0.6.1"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"react": ">=18.2.0"
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
}
|
|
67
67
|
],
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@testing-library/react": "^16.
|
|
70
|
-
"@types/react": "^19.
|
|
71
|
-
"@types/react-dom": "^19.
|
|
72
|
-
"react": "^19.
|
|
73
|
-
"react-dom": "^19.
|
|
69
|
+
"@testing-library/react": "^16.3.2",
|
|
70
|
+
"@types/react": "^19.2.14",
|
|
71
|
+
"@types/react-dom": "^19.2.3",
|
|
72
|
+
"react": "^19.2.4",
|
|
73
|
+
"react-dom": "^19.2.4"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"build": "pnpm run clean && node ./scripts/build.mjs && tsc -p tsconfig.build.json && node ../../scripts/copy-types.mjs dist",
|