@daltonr/pathwrite-solid 0.12.0 → 0.13.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 +20 -10
- package/dist/index.css +17 -0
- package/dist/index.d.ts +20 -5
- package/dist/index.js +96 -16
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +115 -19
package/README.md
CHANGED
|
@@ -35,7 +35,7 @@ import { PathShell } from "@daltonr/pathwrite-solid";
|
|
|
35
35
|
import "@daltonr/pathwrite-solid/styles.css";
|
|
36
36
|
import type { PathDefinition, PathData } from "@daltonr/pathwrite-core";
|
|
37
37
|
|
|
38
|
-
interface SignupData extends PathData {
|
|
38
|
+
export interface SignupData extends PathData {
|
|
39
39
|
name: string;
|
|
40
40
|
email: string;
|
|
41
41
|
}
|
|
@@ -66,6 +66,7 @@ export function SignupFlow() {
|
|
|
66
66
|
```tsx
|
|
67
67
|
// DetailsStep.tsx
|
|
68
68
|
import { usePathContext } from "@daltonr/pathwrite-solid";
|
|
69
|
+
import type { SignupData } from "./SignupFlow";
|
|
69
70
|
|
|
70
71
|
export function DetailsStep() {
|
|
71
72
|
const { snapshot, setData } = usePathContext<SignupData>();
|
|
@@ -89,6 +90,8 @@ export function DetailsStep() {
|
|
|
89
90
|
|
|
90
91
|
Step components call `usePathContext()` to access engine state. `<PathShell>` provides the context automatically via `createContext` / `useContext`.
|
|
91
92
|
|
|
93
|
+
Each step render function runs once, when its step becomes current, and the component it returns lives until the path moves to a different step. Engine events that leave the step unchanged (`setData` on every keystroke, `validate()`, guard and hook status changes) do not re-create it, so inputs keep their DOM node, focus and local state. Live state reaches the step reactively either through `usePathContext().snapshot()` or through the `snapshot` argument of the render function, whose properties read the current snapshot: `(snap) => <DetailsStep snapshot={snap} />` with `createMemo(() => props.snapshot.data)` inside stays up to date.
|
|
94
|
+
|
|
92
95
|
---
|
|
93
96
|
|
|
94
97
|
## usePath
|
|
@@ -105,11 +108,11 @@ Step components call `usePathContext()` to access engine state. `<PathShell>` pr
|
|
|
105
108
|
| `goToStep(stepId)` | function | Jump to a step by ID, bypassing guards and `shouldSkip`. |
|
|
106
109
|
| `goToStepChecked(stepId)` | function | Jump to a step by ID, checking the relevant navigation guard first. |
|
|
107
110
|
| `setData(key, value)` | function | Update a single data field. Type-checked when `TData` is provided. |
|
|
108
|
-
| `resetStep()` | function |
|
|
111
|
+
| `resetStep()` | function | Restore the current step's data to what it was when the step was entered. Emits `stateChanged` with cause `"resetStep"`; no hooks run. |
|
|
109
112
|
| `startSubPath(definition, data?, meta?)` | function | Push a sub-path. `meta` is echoed back to `onSubPathComplete` / `onSubPathCancel`. |
|
|
110
|
-
| `suspend()` | function |
|
|
111
|
-
| `retry()` | function |
|
|
112
|
-
| `restart()` | function | Tear down the active path without firing hooks and start
|
|
113
|
+
| `suspend()` | function | Pause the path with intent to return. Emits `suspended`; all state and data are preserved. |
|
|
114
|
+
| `retry()` | function | Re-run the operation that set `snapshot().error`. Increments `retryCount` on repeated failure. No-op when there is no pending error. |
|
|
115
|
+
| `restart()` | function | Tear down the active path without firing hooks and restart the root path with the `initialData` from the original `start()`. Takes no arguments; rejects if nothing has been started. |
|
|
113
116
|
| `validate()` | function | Set `snapshot().hasValidated` without navigating. Used to trigger inline errors across all tabs in a nested shell. |
|
|
114
117
|
|
|
115
118
|
---
|
|
@@ -133,18 +136,25 @@ Step components call `usePathContext()` to access engine state. `<PathShell>` pr
|
|
|
133
136
|
| `path` | `PathDefinition` | required | The path to run. |
|
|
134
137
|
| `steps` | `Record<string, (snapshot: PathSnapshot) => JSX.Element>` | — | Step render functions keyed by step ID (or `formId` for `StepChoice` steps). |
|
|
135
138
|
| `initialData` | `PathData` | `{}` | Initial data passed to `engine.start()`. |
|
|
136
|
-
| `engine` | `PathEngine` | — | An externally-managed engine. When provided, `PathShell` skips its own `start()`. |
|
|
139
|
+
| `engine` | `PathEngine` | — | An externally-managed engine. When provided, `PathShell` skips its own `start()`. May be provided after mount (e.g. once an async `restoreOrStart()` resolves): the shell adopts it, re-subscribing and re-seeding from the new engine. Set `autoStart` to `false` if the shell should not start its own path in the meantime. |
|
|
137
140
|
| `autoStart` | `boolean` | `true` | Start the path automatically on mount. Ignored when `engine` is provided. |
|
|
138
141
|
| `validationDisplay` | `"summary" \| "inline" \| "both"` | `"summary"` | Where `fieldErrors` are rendered. Use `"inline"` to suppress the summary and handle errors inside step components. |
|
|
139
142
|
| `layout` | `"wizard" \| "form" \| "auto" \| "tabs"` | `"auto"` | `"wizard"`: Back on left, Cancel+Submit on right. `"form"`: Cancel on left, Submit on right, no Back. `"tabs"`: No progress header or footer — for tabbed interfaces. `"auto"` picks `"form"` for single-step paths. |
|
|
143
|
+
| `progressLayout` | `"merged" \| "split" \| "rootOnly" \| "activeOnly"` | `"merged"` | How the root and sub-path progress bars are arranged while a sub-path is active. |
|
|
140
144
|
| `hideProgress` | `boolean` | `false` | Hide the progress indicator. Also hidden automatically for single-step top-level paths. |
|
|
141
145
|
| `hideFooter` | `boolean` | `false` | Hide the footer entirely. The error panel is still shown on async failure. |
|
|
142
146
|
| `hideCancel` | `boolean` | `false` | Hide the Cancel button. |
|
|
147
|
+
| `backLabel` | `string` | `"Previous"` | Previous button label. |
|
|
148
|
+
| `nextLabel` | `string` | `"Next"` | Next button label. |
|
|
149
|
+
| `completeLabel` | `string` | `"Complete"` | Complete button label (last step). |
|
|
150
|
+
| `loadingLabel` | `string` | `undefined` | Label for the Next/Complete button while an async operation is in progress. When unset, the button keeps its label and shows a CSS spinner. |
|
|
151
|
+
| `cancelLabel` | `string` | `"Cancel"` | Cancel button label. |
|
|
152
|
+
| `class` | `string` | — | Extra CSS class on the root element. |
|
|
143
153
|
| `validateWhen` | `boolean` | `false` | When it becomes `true`, calls `validate()` on the engine. Bind to the outer shell's `hasAttemptedNext` for nested shells. |
|
|
144
154
|
| `services` | `object \| null` | `null` | Services object passed through context to all step components. |
|
|
145
|
-
| `restoreKey` | `string` | — | When set, the shell automatically saves its full state (data + active step) into the nearest outer `PathShell`'s data under this key on every change, and restores from it on remount. No-op on a top-level shell. |
|
|
146
|
-
| `renderHeader` | `(snapshot) => JSX.Element` | — | Replace the default progress header. |
|
|
147
|
-
| `renderFooter` | `(snapshot, actions) => JSX.Element` | — | Replace the default navigation buttons. |
|
|
155
|
+
| `restoreKey` | `string` | — | When set, the shell automatically saves its full state (data + active step) into the nearest outer `PathShell`'s data under this key on every change, and restores from it on remount. No-op on a top-level shell. The stored value also carries the inner engine's serialized state, so a remount restores in place: no `onEnter` / `onLeave` re-run, attempted / visited state kept. |
|
|
156
|
+
| `renderHeader` | `(snapshot) => JSX.Element` | — | Replace the default progress header. A custom header is shown even for single-step paths, and hidden under `hideProgress` or `layout="tabs"`. |
|
|
157
|
+
| `renderFooter` | `(snapshot, actions) => JSX.Element` | — | Replace the default navigation buttons. `actions` contains `next`, `previous`, `cancel`, `goToStep`, `goToStepChecked`, `setData`, `restart`, `retry`, `suspend`. |
|
|
148
158
|
| `completionContent` | `(snapshot: PathSnapshot) => JSX.Element` | — | Custom content rendered when `snapshot().status === "completed"` (`completionBehaviour: "stayOnFinal"`). Receives the completed snapshot. If omitted, a default "All done." panel is shown. |
|
|
149
159
|
| `onComplete` | `(data: PathData) => void` | — | Called when the path completes. |
|
|
150
160
|
| `onCancel` | `(data: PathData) => void` | — | Called when the path is cancelled. |
|
|
@@ -400,7 +410,7 @@ function App() {
|
|
|
400
410
|
## Further reading
|
|
401
411
|
|
|
402
412
|
- [SolidJS getting started guide](../../docs/getting-started/frameworks/solidjs.md)
|
|
403
|
-
- [Navigation guide](../../docs/
|
|
413
|
+
- [Navigation guide](../../docs/developer-guide/04-navigation.md)
|
|
404
414
|
- [Full docs](../../docs/README.md)
|
|
405
415
|
|
|
406
416
|
---
|
package/dist/index.css
CHANGED
|
@@ -357,6 +357,23 @@
|
|
|
357
357
|
content: ":";
|
|
358
358
|
}
|
|
359
359
|
|
|
360
|
+
/* ------------------------------------------------------------------ */
|
|
361
|
+
/* Inline field-level errors and warnings (<FieldError /> component) */
|
|
362
|
+
/* ------------------------------------------------------------------ */
|
|
363
|
+
.pw-field-error {
|
|
364
|
+
display: block;
|
|
365
|
+
font-size: 12px;
|
|
366
|
+
color: var(--pw-color-error);
|
|
367
|
+
margin-top: 4px;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.pw-field-warning {
|
|
371
|
+
display: block;
|
|
372
|
+
font-size: 12px;
|
|
373
|
+
color: var(--pw-color-warning);
|
|
374
|
+
margin-top: 4px;
|
|
375
|
+
}
|
|
376
|
+
|
|
360
377
|
/* ------------------------------------------------------------------ */
|
|
361
378
|
/* Footer — navigation buttons */
|
|
362
379
|
/* ------------------------------------------------------------------ */
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { PathData, PathDefinition, PathEngine, PathEvent, PathSnapshot, Progress
|
|
|
3
3
|
export interface UsePathOptions {
|
|
4
4
|
/**
|
|
5
5
|
* An externally-managed `PathEngine` to subscribe to — for example, the engine
|
|
6
|
-
* returned by `
|
|
6
|
+
* returned by `restoreOrStart()` from `@daltonr/pathwrite-store`.
|
|
7
7
|
*
|
|
8
8
|
* When provided:
|
|
9
9
|
* - `usePath` will **not** create its own engine.
|
|
@@ -11,7 +11,13 @@ export interface UsePathOptions {
|
|
|
11
11
|
* - The engine lifecycle (start / cleanup) is the **caller's responsibility**.
|
|
12
12
|
* - `PathShell` will skip its own `autoStart` call.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* An externally managed engine — a plain engine or an accessor. With an
|
|
16
|
+
* accessor the hook tracks it, so an engine that arrives later (e.g. from an
|
|
17
|
+
* async `restoreOrStart()`) or is swapped is adopted — the hook
|
|
18
|
+
* re-subscribes and re-seeds its snapshot from the new engine.
|
|
19
|
+
*/
|
|
20
|
+
engine?: PathEngine | Accessor<PathEngine | undefined>;
|
|
15
21
|
/** Called for every engine event (stateChanged, completed, cancelled, resumed). */
|
|
16
22
|
onEvent?: (event: PathEvent) => void;
|
|
17
23
|
}
|
|
@@ -44,8 +50,9 @@ export interface UsePathReturn<TData extends PathData = PathData> {
|
|
|
44
50
|
/** Reset the current step's data to what it was when the step was entered. Useful for "Clear" or "Reset" buttons. */
|
|
45
51
|
resetStep: () => Promise<void>;
|
|
46
52
|
/**
|
|
47
|
-
* Tear down any active path (without firing hooks) and immediately
|
|
48
|
-
*
|
|
53
|
+
* Tear down any active path (without firing hooks) and immediately restart
|
|
54
|
+
* the root path with the `initialData` from the original `start()` call.
|
|
55
|
+
* Takes no arguments; rejects if the engine has never been started.
|
|
49
56
|
* Use for "Start over" / retry flows without remounting the component.
|
|
50
57
|
*/
|
|
51
58
|
restart: () => Promise<void>;
|
|
@@ -88,7 +95,7 @@ export interface PathShellProps {
|
|
|
88
95
|
path: PathDefinition<any>;
|
|
89
96
|
/**
|
|
90
97
|
* An externally-managed engine — for example, the engine returned by
|
|
91
|
-
* `
|
|
98
|
+
* `restoreOrStart()` from `@daltonr/pathwrite-store`. When supplied, `PathShell` will skip its own
|
|
92
99
|
* `start()` call and drive the UI from the provided engine instead.
|
|
93
100
|
*/
|
|
94
101
|
engine?: PathEngine;
|
|
@@ -105,6 +112,14 @@ export interface PathShellProps {
|
|
|
105
112
|
* ```tsx
|
|
106
113
|
* <PathShell steps={{ details: (snap) => <DetailsStep snapshot={snap} />, review: (snap) => <ReviewStep snapshot={snap} /> }} />
|
|
107
114
|
* ```
|
|
115
|
+
* Each function is called once when its step becomes current, and the
|
|
116
|
+
* component it returns lives until the path moves to a different step —
|
|
117
|
+
* engine events that leave the step unchanged (`setData`, `validate`,
|
|
118
|
+
* guard / hook status changes) do not re-create it, so inputs keep their
|
|
119
|
+
* DOM node, focus and local state. The `snapshot` argument is live: its
|
|
120
|
+
* properties read the current snapshot reactively, so
|
|
121
|
+
* `createMemo(() => props.snapshot.data)` stays up to date. Reading
|
|
122
|
+
* `usePathContext().snapshot()` inside the step works the same way.
|
|
108
123
|
*/
|
|
109
124
|
steps?: Record<string, (snapshot: PathSnapshot) => ReturnType<Component>>;
|
|
110
125
|
onComplete?: (data: PathData) => void;
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "solid-js/jsx-runtime";
|
|
2
|
-
import { createSignal, onCleanup, onMount, createContext, useContext, createEffect, For, Show, } from "solid-js";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "solid-js/jsx-runtime";
|
|
2
|
+
import { createSignal, createMemo, untrack, onCleanup, onMount, createContext, useContext, createEffect, on, For, Show, } from "solid-js";
|
|
3
3
|
import { PathEngine, formatFieldKey, errorPhaseMessage, } from "@daltonr/pathwrite-core";
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
5
|
// usePath composable
|
|
6
6
|
// ---------------------------------------------------------------------------
|
|
7
7
|
export function usePath(options) {
|
|
8
|
-
|
|
8
|
+
let ownEngine = null;
|
|
9
|
+
const resolveEngine = () => {
|
|
10
|
+
const external = typeof options?.engine === "function" ? options.engine() : options?.engine;
|
|
11
|
+
return external ?? (ownEngine ??= new PathEngine());
|
|
12
|
+
};
|
|
13
|
+
let engine = resolveEngine();
|
|
9
14
|
const [snapshot, setSnapshot] = createSignal(engine.snapshot(),
|
|
10
15
|
// always notify — PathEngine produces new snapshot objects on every event
|
|
11
16
|
{ equals: false });
|
|
12
|
-
const
|
|
17
|
+
const onEngineEvent = (event) => {
|
|
13
18
|
if (event.type === "stateChanged" || event.type === "resumed") {
|
|
14
19
|
setSnapshot(event.snapshot);
|
|
15
20
|
}
|
|
@@ -17,8 +22,18 @@ export function usePath(options) {
|
|
|
17
22
|
setSnapshot(engine.snapshot());
|
|
18
23
|
}
|
|
19
24
|
options?.onEvent?.(event);
|
|
20
|
-
}
|
|
21
|
-
|
|
25
|
+
};
|
|
26
|
+
let unsubscribe = engine.subscribe(onEngineEvent);
|
|
27
|
+
// Adopt a late or swapped engine: re-subscribe and re-seed the snapshot.
|
|
28
|
+
createEffect(on(resolveEngine, (next) => {
|
|
29
|
+
if (next === engine)
|
|
30
|
+
return;
|
|
31
|
+
unsubscribe();
|
|
32
|
+
engine = next;
|
|
33
|
+
setSnapshot(engine.snapshot());
|
|
34
|
+
unsubscribe = engine.subscribe(onEngineEvent);
|
|
35
|
+
}, { defer: true }));
|
|
36
|
+
onCleanup(() => unsubscribe());
|
|
22
37
|
const start = (path, initialData = {}) => engine.start(path, initialData);
|
|
23
38
|
const startSubPath = (path, initialData = {}, meta) => engine.startSubPath(path, initialData, meta);
|
|
24
39
|
const next = () => engine.next();
|
|
@@ -56,8 +71,28 @@ export function usePathContext() {
|
|
|
56
71
|
export const PathShell = (props) => {
|
|
57
72
|
// Read outer PathShell context BEFORE providing our own.
|
|
58
73
|
const outerCtx = useContext(PathContext);
|
|
74
|
+
// When remounting under restoreKey, rebuild the inner engine from the state the
|
|
75
|
+
// previous instance exported, instead of starting the path and jumping to the
|
|
76
|
+
// step (which re-ran onEnter/onLeave and lost attempted / visited state).
|
|
77
|
+
const restoredEngine = (() => {
|
|
78
|
+
if (props.engine || !props.restoreKey || !outerCtx)
|
|
79
|
+
return null;
|
|
80
|
+
const stored = outerCtx.path.snapshot()?.data[props.restoreKey];
|
|
81
|
+
if (!stored || typeof stored !== "object" || !stored.serializedState)
|
|
82
|
+
return null;
|
|
83
|
+
try {
|
|
84
|
+
return PathEngine.fromState(stored.serializedState, { [props.path.id]: props.path });
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return null; // unusable state (e.g. the path definition changed): start fresh below
|
|
88
|
+
}
|
|
89
|
+
})();
|
|
90
|
+
// The shell's own engine is created once; an `engine` prop — present at
|
|
91
|
+
// mount or arriving later — always takes precedence and is adopted by usePath.
|
|
92
|
+
const ownEngine = restoredEngine ?? new PathEngine();
|
|
93
|
+
const currentEngine = () => props.engine ?? ownEngine;
|
|
59
94
|
const pathReturn = usePath({
|
|
60
|
-
engine:
|
|
95
|
+
engine: currentEngine,
|
|
61
96
|
onEvent(event) {
|
|
62
97
|
props.onEvent?.(event);
|
|
63
98
|
if (event.type === "completed")
|
|
@@ -65,13 +100,13 @@ export const PathShell = (props) => {
|
|
|
65
100
|
if (event.type === "cancelled")
|
|
66
101
|
props.onCancel?.(event.data);
|
|
67
102
|
if (props.restoreKey && outerCtx && event.type === "stateChanged") {
|
|
68
|
-
outerCtx.path.setData(props.restoreKey, event.snapshot);
|
|
103
|
+
outerCtx.path.setData(props.restoreKey, { ...event.snapshot, serializedState: currentEngine().exportState() });
|
|
69
104
|
}
|
|
70
105
|
},
|
|
71
106
|
});
|
|
72
107
|
const { snapshot, start, next, previous, cancel, goToStep, goToStepChecked, setData, restart, retry, suspend, validate } = pathReturn;
|
|
73
108
|
onMount(() => {
|
|
74
|
-
if (props.autoStart !== false && !props.engine) {
|
|
109
|
+
if (props.autoStart !== false && !props.engine && !restoredEngine) {
|
|
75
110
|
let startData = props.initialData ?? {};
|
|
76
111
|
let restoreStepId;
|
|
77
112
|
if (props.restoreKey && outerCtx) {
|
|
@@ -111,12 +146,57 @@ export const PathShell = (props) => {
|
|
|
111
146
|
const effectiveHideProgress = () => props.hideProgress || props.layout === "tabs";
|
|
112
147
|
const effectiveHideFooter = () => props.hideFooter || props.layout === "tabs";
|
|
113
148
|
const showRoot = () => !effectiveHideProgress() && !!snap().rootProgress && props.progressLayout !== "activeOnly";
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
149
|
+
// A custom header is the consumer's decision: show it whenever progress is
|
|
150
|
+
// not hidden, even for a single-step path. Only the *default* header hides
|
|
151
|
+
// for one step (same rule as the React / Vue shells).
|
|
152
|
+
const showActive = () => !effectiveHideProgress() && (props.renderHeader
|
|
153
|
+
? true
|
|
154
|
+
: (snap().stepCount > 1 || snap().nestingLevel > 0) && props.progressLayout !== "rootOnly");
|
|
155
|
+
// The step render function must only run when the *step* changes. The
|
|
156
|
+
// snapshot signal is `{ equals: false }` (a new object on every engine
|
|
157
|
+
// event), so reading it in a tracked render position would tear the step
|
|
158
|
+
// component down and re-create it on every setData — losing the input's
|
|
159
|
+
// DOM node and focus on each keystroke. Key the rendered content on the
|
|
160
|
+
// step's identity and create it untracked; live state reaches the step
|
|
161
|
+
// through the reactive snapshot proxy below or `usePathContext()`.
|
|
162
|
+
// Which key of `props.steps` renders the current step: the StepChoice's
|
|
163
|
+
// inner step id (`formId`) when content is registered under it, otherwise
|
|
164
|
+
// the slot's own id — the same fallback the React / Vue / Svelte shells use.
|
|
165
|
+
const stepLookupKey = createMemo(() => {
|
|
166
|
+
const s = snapshot();
|
|
167
|
+
if (!s)
|
|
168
|
+
return null;
|
|
169
|
+
if (s.formId && props.steps?.[s.formId])
|
|
170
|
+
return s.formId;
|
|
171
|
+
return s.stepId;
|
|
172
|
+
});
|
|
173
|
+
const stepIdentity = createMemo(() => {
|
|
174
|
+
const s = snapshot();
|
|
175
|
+
return s ? `${s.nestingLevel}:${s.pathId}:${s.formId ?? s.stepId}` : null;
|
|
176
|
+
});
|
|
177
|
+
// A snapshot whose property reads go through the signal, so a step that
|
|
178
|
+
// received it as a prop (`(snap) => <Step snapshot={snap} />`) sees the
|
|
179
|
+
// current values reactively even though the step itself is created once.
|
|
180
|
+
const liveSnapshot = new Proxy({}, {
|
|
181
|
+
get: (_target, key) => snapshot()?.[key],
|
|
182
|
+
has: (_target, key) => { const s = snapshot(); return s ? key in s : false; },
|
|
183
|
+
ownKeys: () => { const s = snapshot(); return s ? Reflect.ownKeys(s) : []; },
|
|
184
|
+
getOwnPropertyDescriptor: (_target, key) => {
|
|
185
|
+
const s = snapshot();
|
|
186
|
+
const d = s ? Object.getOwnPropertyDescriptor(s, key) : undefined;
|
|
187
|
+
return d ? { ...d, configurable: true } : undefined;
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
// Rendered inside <PathContext.Provider>, so the memo (and the step it
|
|
191
|
+
// creates) is owned by the provider and `usePathContext()` resolves.
|
|
192
|
+
const StepContent = () => {
|
|
193
|
+
const content = createMemo(() => {
|
|
194
|
+
if (stepIdentity() === null)
|
|
195
|
+
return null;
|
|
196
|
+
const render = props.steps?.[untrack(stepLookupKey)];
|
|
197
|
+
return render ? untrack(() => render(liveSnapshot)) : null;
|
|
198
|
+
});
|
|
199
|
+
return _jsx(_Fragment, { children: content() });
|
|
120
200
|
};
|
|
121
201
|
const showValidation = () => props.validationDisplay !== "inline" &&
|
|
122
202
|
(snap().hasAttemptedNext || snap().hasValidated) &&
|
|
@@ -136,7 +216,7 @@ export const PathShell = (props) => {
|
|
|
136
216
|
? props.renderHeader(snap())
|
|
137
217
|
: _jsx(SolidHeader, { snapshot: snap() }) }), _jsx(Show, { when: snap().status === "completed", children: _jsx("div", { class: "pw-shell__body", children: props.completionContent
|
|
138
218
|
? props.completionContent(snap())
|
|
139
|
-
: (_jsxs("div", { class: "pw-shell__completion", children: [_jsx("p", { class: "pw-shell__completion-message", children: "All done." }), _jsx("button", { type: "button", class: "pw-shell__completion-restart", onClick: () => restart(), children: "Start over" })] })) }) }), _jsxs(Show, { when: snap().status !== "completed", children: [_jsx("div", { class: "pw-shell__body", children:
|
|
219
|
+
: (_jsxs("div", { class: "pw-shell__completion", children: [_jsx("p", { class: "pw-shell__completion-message", children: "All done." }), _jsx("button", { type: "button", class: "pw-shell__completion-restart", onClick: () => restart(), children: "Start over" })] })) }) }), _jsxs(Show, { when: snap().status !== "completed", children: [_jsx("div", { class: "pw-shell__body", children: _jsx(StepContent, {}) }), _jsx(Show, { when: showValidation(), children: _jsx("ul", { class: "pw-shell__validation", children: _jsx(For, { each: Object.entries(snap().fieldErrors), children: ([key, msg]) => (_jsxs("li", { class: "pw-shell__validation-item", children: [_jsx(Show, { when: key !== "_", children: _jsx("span", { class: "pw-shell__validation-label", children: formatFieldKey(key) }) }), msg] })) }) }) }), _jsx(Show, { when: showWarnings(), children: _jsx("ul", { class: "pw-shell__warnings", children: _jsx(For, { each: Object.entries(snap().fieldWarnings), children: ([key, msg]) => (_jsxs("li", { class: "pw-shell__warnings-item", children: [_jsx(Show, { when: key !== "_", children: _jsx("span", { class: "pw-shell__warnings-label", children: formatFieldKey(key) }) }), msg] })) }) }) }), _jsx(Show, { when: showBlockingError(), children: _jsx("p", { class: "pw-shell__blocking-error", children: snap().blockingError }) }), _jsx(Show, { when: snap().status === "error" && snap().error, fallback: _jsx(Show, { when: !effectiveHideFooter(), children: props.renderFooter
|
|
140
220
|
? props.renderFooter(snap(), actions)
|
|
141
221
|
: _jsx(SolidFooter, { snapshot: snap(), actions: actions, backLabel: props.backLabel ?? "Previous", nextLabel: props.nextLabel ?? "Next", completeLabel: props.completeLabel ?? "Complete", loadingLabel: props.loadingLabel, cancelLabel: props.cancelLabel ?? "Cancel", hideCancel: props.hideCancel ?? false, layout: resolvedFooterLayout() }) }), children: _jsx(SolidErrorPanel, { snapshot: snap(), actions: actions }) })] })] }) }) }));
|
|
142
222
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daltonr/pathwrite-solid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "SolidJS adapter for @daltonr/pathwrite-core — reactive usePath() composable and optional PathShell component.",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"solid-js": ">=1.8.0"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@daltonr/pathwrite-core": "^0.
|
|
50
|
+
"@daltonr/pathwrite-core": "^0.13.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"solid-js": "^1.9.0"
|
package/src/index.tsx
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSignal,
|
|
3
|
+
createMemo,
|
|
4
|
+
untrack,
|
|
3
5
|
onCleanup,
|
|
4
6
|
onMount,
|
|
5
7
|
createContext,
|
|
6
8
|
useContext,
|
|
7
9
|
createEffect,
|
|
10
|
+
on,
|
|
8
11
|
For,
|
|
9
12
|
Show,
|
|
10
13
|
type Component,
|
|
@@ -17,6 +20,7 @@ import {
|
|
|
17
20
|
PathEngine,
|
|
18
21
|
PathEvent,
|
|
19
22
|
PathSnapshot,
|
|
23
|
+
SerializedPathState,
|
|
20
24
|
ProgressLayout,
|
|
21
25
|
RootProgress,
|
|
22
26
|
formatFieldKey,
|
|
@@ -30,7 +34,7 @@ import {
|
|
|
30
34
|
export interface UsePathOptions {
|
|
31
35
|
/**
|
|
32
36
|
* An externally-managed `PathEngine` to subscribe to — for example, the engine
|
|
33
|
-
* returned by `
|
|
37
|
+
* returned by `restoreOrStart()` from `@daltonr/pathwrite-store`.
|
|
34
38
|
*
|
|
35
39
|
* When provided:
|
|
36
40
|
* - `usePath` will **not** create its own engine.
|
|
@@ -38,7 +42,13 @@ export interface UsePathOptions {
|
|
|
38
42
|
* - The engine lifecycle (start / cleanup) is the **caller's responsibility**.
|
|
39
43
|
* - `PathShell` will skip its own `autoStart` call.
|
|
40
44
|
*/
|
|
41
|
-
|
|
45
|
+
/**
|
|
46
|
+
* An externally managed engine — a plain engine or an accessor. With an
|
|
47
|
+
* accessor the hook tracks it, so an engine that arrives later (e.g. from an
|
|
48
|
+
* async `restoreOrStart()`) or is swapped is adopted — the hook
|
|
49
|
+
* re-subscribes and re-seeds its snapshot from the new engine.
|
|
50
|
+
*/
|
|
51
|
+
engine?: PathEngine | Accessor<PathEngine | undefined>;
|
|
42
52
|
/** Called for every engine event (stateChanged, completed, cancelled, resumed). */
|
|
43
53
|
onEvent?: (event: PathEvent) => void;
|
|
44
54
|
}
|
|
@@ -68,8 +78,9 @@ export interface UsePathReturn<TData extends PathData = PathData> {
|
|
|
68
78
|
/** Reset the current step's data to what it was when the step was entered. Useful for "Clear" or "Reset" buttons. */
|
|
69
79
|
resetStep: () => Promise<void>;
|
|
70
80
|
/**
|
|
71
|
-
* Tear down any active path (without firing hooks) and immediately
|
|
72
|
-
*
|
|
81
|
+
* Tear down any active path (without firing hooks) and immediately restart
|
|
82
|
+
* the root path with the `initialData` from the original `start()` call.
|
|
83
|
+
* Takes no arguments; rejects if the engine has never been started.
|
|
73
84
|
* Use for "Start over" / retry flows without remounting the component.
|
|
74
85
|
*/
|
|
75
86
|
restart: () => Promise<void>;
|
|
@@ -86,7 +97,12 @@ export interface UsePathReturn<TData extends PathData = PathData> {
|
|
|
86
97
|
// ---------------------------------------------------------------------------
|
|
87
98
|
|
|
88
99
|
export function usePath<TData extends PathData = PathData>(options?: UsePathOptions): UsePathReturn<TData> {
|
|
89
|
-
|
|
100
|
+
let ownEngine: PathEngine | null = null;
|
|
101
|
+
const resolveEngine = (): PathEngine => {
|
|
102
|
+
const external = typeof options?.engine === "function" ? options.engine() : options?.engine;
|
|
103
|
+
return external ?? (ownEngine ??= new PathEngine());
|
|
104
|
+
};
|
|
105
|
+
let engine = resolveEngine();
|
|
90
106
|
|
|
91
107
|
const [snapshot, setSnapshot] = createSignal<PathSnapshot<TData> | null>(
|
|
92
108
|
engine.snapshot() as PathSnapshot<TData> | null,
|
|
@@ -94,16 +110,26 @@ export function usePath<TData extends PathData = PathData>(options?: UsePathOpti
|
|
|
94
110
|
{ equals: false }
|
|
95
111
|
);
|
|
96
112
|
|
|
97
|
-
const
|
|
113
|
+
const onEngineEvent = (event: PathEvent): void => {
|
|
98
114
|
if (event.type === "stateChanged" || event.type === "resumed") {
|
|
99
115
|
setSnapshot(event.snapshot as PathSnapshot<TData>);
|
|
100
116
|
} else if (event.type === "completed" || event.type === "cancelled") {
|
|
101
117
|
setSnapshot(engine.snapshot() as PathSnapshot<TData> | null);
|
|
102
118
|
}
|
|
103
119
|
options?.onEvent?.(event);
|
|
104
|
-
}
|
|
120
|
+
};
|
|
121
|
+
let unsubscribe = engine.subscribe(onEngineEvent);
|
|
122
|
+
|
|
123
|
+
// Adopt a late or swapped engine: re-subscribe and re-seed the snapshot.
|
|
124
|
+
createEffect(on(resolveEngine, (next) => {
|
|
125
|
+
if (next === engine) return;
|
|
126
|
+
unsubscribe();
|
|
127
|
+
engine = next;
|
|
128
|
+
setSnapshot(engine.snapshot() as PathSnapshot<TData> | null);
|
|
129
|
+
unsubscribe = engine.subscribe(onEngineEvent);
|
|
130
|
+
}, { defer: true }));
|
|
105
131
|
|
|
106
|
-
onCleanup(unsubscribe);
|
|
132
|
+
onCleanup(() => unsubscribe());
|
|
107
133
|
|
|
108
134
|
const start = (path: PathDefinition<any>, initialData: PathData = {}): Promise<void> =>
|
|
109
135
|
engine.start(path, initialData);
|
|
@@ -179,7 +205,7 @@ export interface PathShellProps {
|
|
|
179
205
|
path: PathDefinition<any>;
|
|
180
206
|
/**
|
|
181
207
|
* An externally-managed engine — for example, the engine returned by
|
|
182
|
-
* `
|
|
208
|
+
* `restoreOrStart()` from `@daltonr/pathwrite-store`. When supplied, `PathShell` will skip its own
|
|
183
209
|
* `start()` call and drive the UI from the provided engine instead.
|
|
184
210
|
*/
|
|
185
211
|
engine?: PathEngine;
|
|
@@ -196,6 +222,14 @@ export interface PathShellProps {
|
|
|
196
222
|
* ```tsx
|
|
197
223
|
* <PathShell steps={{ details: (snap) => <DetailsStep snapshot={snap} />, review: (snap) => <ReviewStep snapshot={snap} /> }} />
|
|
198
224
|
* ```
|
|
225
|
+
* Each function is called once when its step becomes current, and the
|
|
226
|
+
* component it returns lives until the path moves to a different step —
|
|
227
|
+
* engine events that leave the step unchanged (`setData`, `validate`,
|
|
228
|
+
* guard / hook status changes) do not re-create it, so inputs keep their
|
|
229
|
+
* DOM node, focus and local state. The `snapshot` argument is live: its
|
|
230
|
+
* properties read the current snapshot reactively, so
|
|
231
|
+
* `createMemo(() => props.snapshot.data)` stays up to date. Reading
|
|
232
|
+
* `usePathContext().snapshot()` inside the step works the same way.
|
|
199
233
|
*/
|
|
200
234
|
steps?: Record<string, (snapshot: PathSnapshot) => ReturnType<Component>>;
|
|
201
235
|
onComplete?: (data: PathData) => void;
|
|
@@ -255,15 +289,33 @@ export const PathShell: Component<PathShellProps> = (props) => {
|
|
|
255
289
|
// Read outer PathShell context BEFORE providing our own.
|
|
256
290
|
const outerCtx = useContext(PathContext);
|
|
257
291
|
|
|
292
|
+
// When remounting under restoreKey, rebuild the inner engine from the state the
|
|
293
|
+
// previous instance exported, instead of starting the path and jumping to the
|
|
294
|
+
// step (which re-ran onEnter/onLeave and lost attempted / visited state).
|
|
295
|
+
const restoredEngine: PathEngine | null = (() => {
|
|
296
|
+
if (props.engine || !props.restoreKey || !outerCtx) return null;
|
|
297
|
+
const stored = outerCtx.path.snapshot()?.data[props.restoreKey] as { serializedState?: SerializedPathState } | undefined;
|
|
298
|
+
if (!stored || typeof stored !== "object" || !stored.serializedState) return null;
|
|
299
|
+
try {
|
|
300
|
+
return PathEngine.fromState(stored.serializedState, { [props.path.id]: props.path });
|
|
301
|
+
} catch {
|
|
302
|
+
return null; // unusable state (e.g. the path definition changed): start fresh below
|
|
303
|
+
}
|
|
304
|
+
})();
|
|
305
|
+
// The shell's own engine is created once; an `engine` prop — present at
|
|
306
|
+
// mount or arriving later — always takes precedence and is adopted by usePath.
|
|
307
|
+
const ownEngine = restoredEngine ?? new PathEngine();
|
|
308
|
+
const currentEngine = (): PathEngine => props.engine ?? ownEngine;
|
|
309
|
+
|
|
258
310
|
const pathReturn = usePath({
|
|
259
|
-
engine:
|
|
311
|
+
engine: currentEngine,
|
|
260
312
|
onEvent(event) {
|
|
261
313
|
props.onEvent?.(event);
|
|
262
314
|
if (event.type === "completed") props.onComplete?.(event.data as PathData);
|
|
263
315
|
if (event.type === "cancelled") props.onCancel?.(event.data as PathData);
|
|
264
316
|
if (props.restoreKey && outerCtx && event.type === "stateChanged") {
|
|
265
317
|
(outerCtx.path.setData as unknown as (key: string, value: unknown) => void)(
|
|
266
|
-
props.restoreKey, event.snapshot
|
|
318
|
+
props.restoreKey, { ...event.snapshot, serializedState: currentEngine().exportState() }
|
|
267
319
|
);
|
|
268
320
|
}
|
|
269
321
|
},
|
|
@@ -272,7 +324,7 @@ export const PathShell: Component<PathShellProps> = (props) => {
|
|
|
272
324
|
const { snapshot, start, next, previous, cancel, goToStep, goToStepChecked, setData, restart, retry, suspend, validate } = pathReturn;
|
|
273
325
|
|
|
274
326
|
onMount(() => {
|
|
275
|
-
if (props.autoStart !== false && !props.engine) {
|
|
327
|
+
if (props.autoStart !== false && !props.engine && !restoredEngine) {
|
|
276
328
|
let startData: PathData = props.initialData ?? {};
|
|
277
329
|
let restoreStepId: string | undefined;
|
|
278
330
|
if (props.restoreKey && outerCtx) {
|
|
@@ -316,13 +368,57 @@ export const PathShell: Component<PathShellProps> = (props) => {
|
|
|
316
368
|
const effectiveHideProgress = () => props.hideProgress || props.layout === "tabs";
|
|
317
369
|
const effectiveHideFooter = () => props.hideFooter || props.layout === "tabs";
|
|
318
370
|
const showRoot = () => !effectiveHideProgress() && !!snap().rootProgress && props.progressLayout !== "activeOnly";
|
|
319
|
-
|
|
371
|
+
// A custom header is the consumer's decision: show it whenever progress is
|
|
372
|
+
// not hidden, even for a single-step path. Only the *default* header hides
|
|
373
|
+
// for one step (same rule as the React / Vue shells).
|
|
374
|
+
const showActive = () => !effectiveHideProgress() && (props.renderHeader
|
|
375
|
+
? true
|
|
376
|
+
: (snap().stepCount > 1 || snap().nestingLevel > 0) && props.progressLayout !== "rootOnly");
|
|
377
|
+
|
|
378
|
+
// The step render function must only run when the *step* changes. The
|
|
379
|
+
// snapshot signal is `{ equals: false }` (a new object on every engine
|
|
380
|
+
// event), so reading it in a tracked render position would tear the step
|
|
381
|
+
// component down and re-create it on every setData — losing the input's
|
|
382
|
+
// DOM node and focus on each keystroke. Key the rendered content on the
|
|
383
|
+
// step's identity and create it untracked; live state reaches the step
|
|
384
|
+
// through the reactive snapshot proxy below or `usePathContext()`.
|
|
385
|
+
// Which key of `props.steps` renders the current step: the StepChoice's
|
|
386
|
+
// inner step id (`formId`) when content is registered under it, otherwise
|
|
387
|
+
// the slot's own id — the same fallback the React / Vue / Svelte shells use.
|
|
388
|
+
const stepLookupKey = createMemo<string | null>(() => {
|
|
389
|
+
const s = snapshot();
|
|
390
|
+
if (!s) return null;
|
|
391
|
+
if (s.formId && props.steps?.[s.formId]) return s.formId;
|
|
392
|
+
return s.stepId;
|
|
393
|
+
});
|
|
394
|
+
const stepIdentity = createMemo<string | null>(() => {
|
|
395
|
+
const s = snapshot();
|
|
396
|
+
return s ? `${s.nestingLevel}:${s.pathId}:${s.formId ?? s.stepId}` : null;
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
// A snapshot whose property reads go through the signal, so a step that
|
|
400
|
+
// received it as a prop (`(snap) => <Step snapshot={snap} />`) sees the
|
|
401
|
+
// current values reactively even though the step itself is created once.
|
|
402
|
+
const liveSnapshot = new Proxy({} as PathSnapshot, {
|
|
403
|
+
get: (_target, key) => (snapshot() as unknown as Record<PropertyKey, unknown> | null)?.[key],
|
|
404
|
+
has: (_target, key) => { const s = snapshot(); return s ? key in s : false; },
|
|
405
|
+
ownKeys: () => { const s = snapshot(); return s ? Reflect.ownKeys(s) : []; },
|
|
406
|
+
getOwnPropertyDescriptor: (_target, key) => {
|
|
407
|
+
const s = snapshot();
|
|
408
|
+
const d = s ? Object.getOwnPropertyDescriptor(s, key) : undefined;
|
|
409
|
+
return d ? { ...d, configurable: true } : undefined;
|
|
410
|
+
},
|
|
411
|
+
});
|
|
320
412
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
const
|
|
325
|
-
|
|
413
|
+
// Rendered inside <PathContext.Provider>, so the memo (and the step it
|
|
414
|
+
// creates) is owned by the provider and `usePathContext()` resolves.
|
|
415
|
+
const StepContent: Component = () => {
|
|
416
|
+
const content = createMemo(() => {
|
|
417
|
+
if (stepIdentity() === null) return null;
|
|
418
|
+
const render = props.steps?.[untrack(stepLookupKey)!];
|
|
419
|
+
return render ? untrack(() => render(liveSnapshot)) : null;
|
|
420
|
+
});
|
|
421
|
+
return <>{content()}</>;
|
|
326
422
|
};
|
|
327
423
|
|
|
328
424
|
const showValidation = () =>
|
|
@@ -399,7 +495,7 @@ export const PathShell: Component<PathShellProps> = (props) => {
|
|
|
399
495
|
</Show>
|
|
400
496
|
{/* Body — step content (hidden when completed) */}
|
|
401
497
|
<Show when={snap().status !== "completed"}>
|
|
402
|
-
<div class="pw-shell__body"
|
|
498
|
+
<div class="pw-shell__body"><StepContent /></div>
|
|
403
499
|
{/* Validation messages */}
|
|
404
500
|
<Show when={showValidation()}>
|
|
405
501
|
<ul class="pw-shell__validation">
|