@pilotiq/pilotiq 0.8.0 → 0.8.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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +66 -0
- package/dist/react/FormStateContext.d.ts.map +1 -1
- package/dist/react/FormStateContext.js +87 -0
- package/dist/react/FormStateContext.js.map +1 -1
- package/dist/react/schemaRenderer/form/FormRenderer.d.ts.map +1 -1
- package/dist/react/schemaRenderer/form/FormRenderer.js +12 -1
- package/dist/react/schemaRenderer/form/FormRenderer.js.map +1 -1
- package/package.json +1 -1
- package/src/react/FormStateContext.tsx +91 -0
- package/src/react/schemaRenderer/form/FormRenderer.tsx +13 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @pilotiq/pilotiq@0.8.
|
|
2
|
+
> @pilotiq/pilotiq@0.8.1 build /home/runner/work/pilotiq/pilotiq/packages/pilotiq
|
|
3
3
|
> tsc -p tsconfig.build.json && pnpm run copy-assets
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @pilotiq/pilotiq@0.8.
|
|
6
|
+
> @pilotiq/pilotiq@0.8.1 copy-assets /home/runner/work/pilotiq/pilotiq/packages/pilotiq
|
|
7
7
|
> mkdir -p dist/styles && cp -R src/styles/*.css dist/styles/
|
|
8
8
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,71 @@
|
|
|
1
1
|
# @pilotiq/pilotiq
|
|
2
2
|
|
|
3
|
+
## 0.8.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- cc7a292: fix(pilotiq): wire `FormStateProvider` through `FormCollabBinding` (Phase F2)
|
|
8
|
+
|
|
9
|
+
The F1 registry slot from 0.8.0 was inert — nothing in pilotiq core
|
|
10
|
+
consumed `FormCollabBinding`. This patch makes the wiring actually
|
|
11
|
+
fire: when a `<RecordCollabRoom>` is mounted up-tree AND a plugin
|
|
12
|
+
(e.g. `@pilotiq-pro/collab@0.1`) registered a binding factory,
|
|
13
|
+
`FormStateProvider` now:
|
|
14
|
+
|
|
15
|
+
1. **Mounts on collab activity, not just `stateUrl`.** `FormRenderer`'s
|
|
16
|
+
`useControlled` gate widens from `!!stateUrl` to
|
|
17
|
+
`!!stateUrl || collabActive`. Forms with zero `.live()` fields but
|
|
18
|
+
a record-edit collab room get the controlled path so every
|
|
19
|
+
`useFieldState(name)` consumer (TextInput / Select / Toggle /
|
|
20
|
+
Date / Slider / …) becomes synchronizable.
|
|
21
|
+
|
|
22
|
+
2. **Constructs a binding on mount.** Calls the registered factory
|
|
23
|
+
with `{ room, formId, initial }`. The binding owns the CRDT
|
|
24
|
+
storage (typically a `Y.Map` on the room's shared ydoc) — pilotiq
|
|
25
|
+
stays Yjs-free.
|
|
26
|
+
|
|
27
|
+
3. **Lifts already-synced state.** On mount, `binding.get()`'s
|
|
28
|
+
snapshot is shallow-merged on top of the SSR-rendered defaults,
|
|
29
|
+
so subsequent joiners see the room's authoritative state.
|
|
30
|
+
|
|
31
|
+
4. **Subscribes to remote changes.** `binding.subscribe(snapshot)`
|
|
32
|
+
fires on every Yjs transaction (local + remote). Per-key
|
|
33
|
+
`Object.is` short-circuit collapses local-write echoes into
|
|
34
|
+
no-op renders; remote changes flow through `setValuesState` into
|
|
35
|
+
the controlled inputs.
|
|
36
|
+
|
|
37
|
+
5. **Proxies `setValue` through the binding.** Every controlled
|
|
38
|
+
write fires `binding.set(name, value)` after the local React
|
|
39
|
+
state update — UNLESS the field opted out via `Field.collab(false)`
|
|
40
|
+
OR the name is a dotted path (Repeater / Builder row leaves stay
|
|
41
|
+
local-only in v1; Phase F.5 tackles `Y.Array<Y.Map>` row identity).
|
|
42
|
+
|
|
43
|
+
6. **Forwards server-derived values through the binding.** When a
|
|
44
|
+
`.live()` POST response carries `values`, the derived fields
|
|
45
|
+
(e.g. auto-`slug` from `title`) also write through the binding so
|
|
46
|
+
every peer sees the derivation without each peer roundtripping the
|
|
47
|
+
server (Q2 from the F-phase plan).
|
|
48
|
+
|
|
49
|
+
### Plan + decisions
|
|
50
|
+
|
|
51
|
+
`pilotiq-pro/docs/plans/collab-form-fields.md` captures the full
|
|
52
|
+
phase breakdown; the three open Q's resolved before this patch:
|
|
53
|
+
|
|
54
|
+
- **Q1** — Idempotent client-side seed (`!ymap.has(k)` per key).
|
|
55
|
+
- **Q2** — Server response writes to Y.Map (above).
|
|
56
|
+
- **Q3** — `.collab(false)` suppresses both value sync AND presence
|
|
57
|
+
(presence chips land in F4).
|
|
58
|
+
|
|
59
|
+
### Tested
|
|
60
|
+
|
|
61
|
+
- All 2938 pilotiq tests pass.
|
|
62
|
+
- Two-window smoke test (playground): typing in `title` / changing
|
|
63
|
+
`status` in one window propagates to the other ~instantly.
|
|
64
|
+
Tiptap fields (`body` / `content`) continue to sync via their own
|
|
65
|
+
`Y.XmlFragment` selectors — non-Tiptap fields now share the same
|
|
66
|
+
`Y.Doc` via the `form-data` Y.Map managed by `@pilotiq-pro/collab`'s
|
|
67
|
+
`formCollabBinding` factory.
|
|
68
|
+
|
|
3
69
|
## 0.8.0
|
|
4
70
|
|
|
5
71
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormStateContext.d.ts","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"FormStateContext.d.ts","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAavD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,QAAQ,EAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACrD;;;;;;qEAMiE;IACjE,WAAW,EAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9D,MAAM,EAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC;8EAC0E;IAC1E,WAAW,EAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,CAAA;IACzD,QAAQ,EAAO,WAAW,CAAA;IAC1B,QAAQ,EAAO,OAAO,CAAA;IACtB,WAAW,EAAI,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAA;CAC7C;AAID;;4DAE4D;AAC5D,wBAAgB,YAAY,IAAI,YAAY,GAAG,IAAI,CAElD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,uBAA4B,CAAA;AAetD,MAAM,WAAW,mBAAmB;IAClC;;;;;;oDAMgD;IAChD,UAAU,EAAG,OAAO,CAAA;IACpB,KAAK,EAAQ,OAAO,CAAA;IACpB,QAAQ,EAAK,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACjC;;;;mBAIe;IACf,WAAW,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,qEAAqE;IACrE,OAAO,EAAM,OAAO,CAAA;IACpB,MAAM,EAAO,MAAM,EAAE,CAAA;CACtB;AAED;;gEAEgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAuB/D;AAWD,MAAM,WAAW,sBAAsB;IACrC;oDACgD;IAChD,WAAW,EAAI,WAAW,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC,QAAQ,EAAO,KAAK,CAAC,SAAS,CAAA;IAC9B,+EAA+E;IAC/E,SAAS,CAAC,EAAK,OAAO,KAAK,CAAA;IAC3B;gFAC4E;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;IAC1C;;;;wDAIoD;IACpD,OAAO,CAAC,EAAO,KAAK,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;CACvD;AAED;;;uEAGuE;AACvE,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,OAAO,GACR,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAoU7C"}
|
|
@@ -3,6 +3,8 @@ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, use
|
|
|
3
3
|
import { collectFieldDefaults, findFieldMeta, parseFormDataToNested, readNestedValue, writeNestedValue, } from './formStateHelpers.js';
|
|
4
4
|
import { runJsHandler } from './fieldJsHandler.js';
|
|
5
5
|
import { useToast } from './Toaster.js';
|
|
6
|
+
import { useCollabRoom } from './CollabRoomContext.js';
|
|
7
|
+
import { getFormCollabBinding } from './FormCollabBindingRegistry.js';
|
|
6
8
|
const FormStateContext = createContext(null);
|
|
7
9
|
/** Hook for direct access to the form context. Returns `null` outside a
|
|
8
10
|
* `FormStateProvider` (e.g. an action modal, or a form without any live
|
|
@@ -18,6 +20,18 @@ export function useFormState() {
|
|
|
18
20
|
* `useContext(FormIdContext)` and fall back to a sentinel when missing.
|
|
19
21
|
*/
|
|
20
22
|
export const FormIdContext = createContext('');
|
|
23
|
+
/**
|
|
24
|
+
* Phase F2 — returns `true` iff the named field has explicitly opted out
|
|
25
|
+
* of realtime collab via `Field.collab(false)`. Sparse meta — absent =
|
|
26
|
+
* inherit the panel default (collab on). Walks the form meta tree the
|
|
27
|
+
* same way `findFieldMeta` does; cheap because it only runs on the
|
|
28
|
+
* per-write path (already a hot path, but every check is one map
|
|
29
|
+
* lookup + one boolean compare).
|
|
30
|
+
*/
|
|
31
|
+
function fieldOptsOutOfCollab(formMeta, name) {
|
|
32
|
+
const meta = findFieldMeta(formMeta, name);
|
|
33
|
+
return meta?.collab === false;
|
|
34
|
+
}
|
|
21
35
|
/** Per-field accessor. Inside a `FormStateProvider` it returns the controlled
|
|
22
36
|
* value + setter + live trigger; outside, it returns sentinels and callers
|
|
23
37
|
* should fall back to `defaultValue` (uncontrolled inputs). */
|
|
@@ -79,6 +93,57 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
79
93
|
const formMetaRef = useRef(formMeta);
|
|
80
94
|
useEffect(() => { formMetaRef.current = formMeta; }, [formMeta]);
|
|
81
95
|
const stateUrl = formMeta['stateUrl'];
|
|
96
|
+
const formId = formMeta['formId'] ?? '';
|
|
97
|
+
// Phase F2 — collab binding. When `<RecordCollabRoom>` is mounted up-tree
|
|
98
|
+
// AND `@pilotiq-pro/collab` registered a `FormCollabBinding` factory, we
|
|
99
|
+
// construct a binding for this form, lift any already-synced state on
|
|
100
|
+
// top of the SSR-rendered defaults, and proxy every local write through
|
|
101
|
+
// it. Remote writes flow back via `subscribe`. Outside a room (or with
|
|
102
|
+
// no factory registered), `bindingRef` stays null and the plain
|
|
103
|
+
// local-state path runs unchanged.
|
|
104
|
+
const collabRoom = useCollabRoom();
|
|
105
|
+
const bindingFactory = getFormCollabBinding();
|
|
106
|
+
const bindingRef = useRef(null);
|
|
107
|
+
useEffect(() => {
|
|
108
|
+
if (!collabRoom || !bindingFactory || !formId)
|
|
109
|
+
return;
|
|
110
|
+
const binding = bindingFactory({ room: collabRoom, formId, initial: valuesRef.current });
|
|
111
|
+
bindingRef.current = binding;
|
|
112
|
+
// Lift any state already in the room (subsequent joiners — first
|
|
113
|
+
// mover sees an empty snapshot here and the local SSR defaults
|
|
114
|
+
// stay authoritative). Shallow merge so fields the binding doesn't
|
|
115
|
+
// know about (defaults the seed skipped, dotted-path Repeater rows
|
|
116
|
+
// we don't sync in F2) survive.
|
|
117
|
+
const synced = binding.get();
|
|
118
|
+
if (Object.keys(synced).length > 0) {
|
|
119
|
+
setValuesState((prev) => ({ ...prev, ...synced }));
|
|
120
|
+
}
|
|
121
|
+
// Subscribe to remote changes. Local writes ALSO trigger this
|
|
122
|
+
// (Yjs observers fire on local transactions too) — the per-key
|
|
123
|
+
// Object.is short-circuit below collapses them into no-op renders.
|
|
124
|
+
const unsubscribe = binding.subscribe((snapshot) => {
|
|
125
|
+
setValuesState((prev) => {
|
|
126
|
+
let changed = false;
|
|
127
|
+
const next = { ...prev };
|
|
128
|
+
for (const [k, v] of Object.entries(snapshot)) {
|
|
129
|
+
if (!Object.is(prev[k], v)) {
|
|
130
|
+
next[k] = v;
|
|
131
|
+
changed = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return changed ? next : prev;
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
return () => {
|
|
138
|
+
unsubscribe();
|
|
139
|
+
binding.destroy();
|
|
140
|
+
bindingRef.current = null;
|
|
141
|
+
};
|
|
142
|
+
// `valuesRef.current` is intentionally read once at mount — initial
|
|
143
|
+
// values seed the binding; subsequent edits flow through `setValue`
|
|
144
|
+
// and remote changes flow through `subscribe`.
|
|
145
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
146
|
+
}, [collabRoom, bindingFactory, formId]);
|
|
82
147
|
/**
|
|
83
148
|
* Tier-2 follow-up to Plan #5 — fire `Field.afterStateUpdatedJs(body)`
|
|
84
149
|
* if the named field declares one. Independent of `live()`: runs
|
|
@@ -134,6 +199,14 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
134
199
|
return prev;
|
|
135
200
|
return { ...prev, [name]: value };
|
|
136
201
|
});
|
|
202
|
+
// Phase F2 — proxy the write through the collab binding when active
|
|
203
|
+
// AND the field hasn't opted out via `.collab(false)`. Dotted-path
|
|
204
|
+
// names (Repeater / Builder row leaves) stay local-only in v1; their
|
|
205
|
+
// syncing belongs to Phase F.5 (`Y.Array<Y.Map>` row identity).
|
|
206
|
+
const binding = bindingRef.current;
|
|
207
|
+
if (binding && !name.includes('.') && !fieldOptsOutOfCollab(formMetaRef.current, name)) {
|
|
208
|
+
binding.set(name, value);
|
|
209
|
+
}
|
|
137
210
|
// Fire the client-side JS hook synchronously after the state write.
|
|
138
211
|
// Dotted-name fields don't go through here (their setter is a no-op
|
|
139
212
|
// in `useFieldState`); they fire JS via `triggerLive` instead so we
|
|
@@ -204,6 +277,20 @@ export function FormStateProvider({ initialMeta, initialErrors, children, fetchI
|
|
|
204
277
|
const serverValues = data.form.values;
|
|
205
278
|
if (serverValues) {
|
|
206
279
|
setValuesState((prev) => ({ ...prev, ...serverValues }));
|
|
280
|
+
// Phase F2 (Q2) — derived fields propagate to peers via the
|
|
281
|
+
// collab binding so every client sees the auto-`slug` / etc.
|
|
282
|
+
// without each peer roundtripping the server. Skip dotted-path
|
|
283
|
+
// names + fields that opted out.
|
|
284
|
+
const binding = bindingRef.current;
|
|
285
|
+
if (binding) {
|
|
286
|
+
for (const [k, v] of Object.entries(serverValues)) {
|
|
287
|
+
if (k.includes('.'))
|
|
288
|
+
continue;
|
|
289
|
+
if (fieldOptsOutOfCollab(data.form, k))
|
|
290
|
+
continue;
|
|
291
|
+
binding.set(k, v);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
207
294
|
}
|
|
208
295
|
setErrors({});
|
|
209
296
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormStateContext.js","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FormStateContext.js","sourceRoot":"","sources":["../../src/react/FormStateContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/FormRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"FormRenderer.d.ts","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/FormRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAW7D,KAAK,aAAa,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;AAExE;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,aAAa,GACd,EAAE;IACD,EAAE,EAAE,WAAW,CAAA;IACf,aAAa,EAAE,aAAa,CAAA;CAC7B,2CAiJA;AAyBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAU,WAAW,EAC1B,KAAK,EAAU,MAAM,EACrB,MAAM,EAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,EAAS,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACvC,aAAa,EAAE,aAAa,GAC3B,KAAK,CAAC,SAAS,CAejB"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useRef, useState } from 'react';
|
|
3
3
|
import { FormIdContext, FormStateProvider, useFormState } from '../../FormStateContext.js';
|
|
4
|
+
import { useCollabRoom } from '../../CollabRoomContext.js';
|
|
5
|
+
import { getFormCollabBinding } from '../../FormCollabBindingRegistry.js';
|
|
4
6
|
import { useNavigate } from '../../navigate.js';
|
|
5
7
|
import { useToast } from '../../Toaster.js';
|
|
6
8
|
import { renderField } from './renderField.js';
|
|
@@ -23,6 +25,15 @@ export function FormRenderer({ el, renderElement, }) {
|
|
|
23
25
|
const stateUrl = el['stateUrl'] ? String(el['stateUrl']) : undefined;
|
|
24
26
|
const serverValues = el['values'] ?? {};
|
|
25
27
|
const serverErrors = el['errors'] ?? {};
|
|
28
|
+
// Phase F2 — the controlled-form path also activates when we're
|
|
29
|
+
// inside a `<RecordCollabRoom>` AND a plugin (e.g.
|
|
30
|
+
// `@pilotiq-pro/collab`) registered a `FormCollabBinding` factory.
|
|
31
|
+
// Without this, forms with no `live()` fields stayed uncontrolled
|
|
32
|
+
// and the collab binding never wired up.
|
|
33
|
+
const collabRoom = useCollabRoom();
|
|
34
|
+
const collabFactory = getFormCollabBinding();
|
|
35
|
+
const collabActive = !!(collabRoom && collabFactory && formId);
|
|
36
|
+
const useControlled = !!stateUrl || collabActive;
|
|
26
37
|
// Methods other than GET/POST are spoofed via _method, mirroring Laravel.
|
|
27
38
|
const httpMethod = method === 'get' ? 'get' : 'post';
|
|
28
39
|
const spoofedMethod = method !== 'get' && method !== 'post' ? method : undefined;
|
|
@@ -108,7 +119,7 @@ export function FormRenderer({ el, renderElement, }) {
|
|
|
108
119
|
setSubmitting(false);
|
|
109
120
|
}
|
|
110
121
|
};
|
|
111
|
-
return (_jsxs("form", { ref: formRef, id: formId || undefined, "data-form-id": formId || undefined, method: httpMethod, action: action, onSubmit: onSubmit, className: "flex flex-col gap-6", children: [formId && _jsx("input", { type: "hidden", name: "_formId", value: formId }), spoofedMethod && _jsx("input", { type: "hidden", name: "_method", value: spoofedMethod }), (formErrors.length > 0 || hasFieldErrors) && (_jsx("div", { className: "rounded-lg border border-destructive/40 bg-destructive/5 text-destructive p-3 text-sm", children: formErrors.length > 0 ? (_jsx("ul", { className: "list-disc pl-4", children: formErrors.map((msg, i) => _jsx("li", { children: msg }, i)) })) : ('Please correct the errors below.') })), _jsx(FormIdContext.Provider, { value: formId, children:
|
|
122
|
+
return (_jsxs("form", { ref: formRef, id: formId || undefined, "data-form-id": formId || undefined, method: httpMethod, action: action, onSubmit: onSubmit, className: "flex flex-col gap-6", children: [formId && _jsx("input", { type: "hidden", name: "_formId", value: formId }), spoofedMethod && _jsx("input", { type: "hidden", name: "_method", value: spoofedMethod }), (formErrors.length > 0 || hasFieldErrors) && (_jsx("div", { className: "rounded-lg border border-destructive/40 bg-destructive/5 text-destructive p-3 text-sm", children: formErrors.length > 0 ? (_jsx("ul", { className: "list-disc pl-4", children: formErrors.map((msg, i) => _jsx("li", { children: msg }, i)) })) : ('Please correct the errors below.') })), _jsx(FormIdContext.Provider, { value: formId, children: useControlled ? (_jsx(FormStateProvider, { initialMeta: el, initialErrors: errors, formRef: formRef, children: _jsx(FormBody, { fallbackChildren: el.children ?? [], fallbackValues: serverValues, fallbackErrors: errors, renderElement: renderElement }) })) : ((el.children ?? []).map((child, i) => renderFormChild(child, i, serverValues, errors, renderElement))) })] }));
|
|
112
123
|
}
|
|
113
124
|
/**
|
|
114
125
|
* Renders the controlled-form's children, sourcing them from the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormRenderer.js","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/FormRenderer.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FormRenderer.js","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/FormRenderer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -17,6 +17,8 @@ import {
|
|
|
17
17
|
} from './formStateHelpers.js'
|
|
18
18
|
import { runJsHandler } from './fieldJsHandler.js'
|
|
19
19
|
import { useToast } from './Toaster.js'
|
|
20
|
+
import { useCollabRoom } from './CollabRoomContext.js'
|
|
21
|
+
import { getFormCollabBinding, type FormCollabBinding } from './FormCollabBindingRegistry.js'
|
|
20
22
|
|
|
21
23
|
export type FieldStatus = 'idle' | 'pending'
|
|
22
24
|
|
|
@@ -58,6 +60,19 @@ export function useFormState(): FormStateApi | null {
|
|
|
58
60
|
*/
|
|
59
61
|
export const FormIdContext = createContext<string>('')
|
|
60
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Phase F2 — returns `true` iff the named field has explicitly opted out
|
|
65
|
+
* of realtime collab via `Field.collab(false)`. Sparse meta — absent =
|
|
66
|
+
* inherit the panel default (collab on). Walks the form meta tree the
|
|
67
|
+
* same way `findFieldMeta` does; cheap because it only runs on the
|
|
68
|
+
* per-write path (already a hot path, but every check is one map
|
|
69
|
+
* lookup + one boolean compare).
|
|
70
|
+
*/
|
|
71
|
+
function fieldOptsOutOfCollab(formMeta: ElementMeta, name: string): boolean {
|
|
72
|
+
const meta = findFieldMeta(formMeta, name) as { collab?: boolean } | undefined
|
|
73
|
+
return meta?.collab === false
|
|
74
|
+
}
|
|
75
|
+
|
|
61
76
|
export interface UseFieldStateResult {
|
|
62
77
|
/** True when the field is inside a controlled form (live fields enabled).
|
|
63
78
|
* Renderers should fall back to their `defaultValue` path when false.
|
|
@@ -184,6 +199,62 @@ export function FormStateProvider({
|
|
|
184
199
|
useEffect(() => { formMetaRef.current = formMeta }, [formMeta])
|
|
185
200
|
|
|
186
201
|
const stateUrl = (formMeta as { stateUrl?: string })['stateUrl']
|
|
202
|
+
const formId = (formMeta as { formId?: string })['formId'] ?? ''
|
|
203
|
+
|
|
204
|
+
// Phase F2 — collab binding. When `<RecordCollabRoom>` is mounted up-tree
|
|
205
|
+
// AND `@pilotiq-pro/collab` registered a `FormCollabBinding` factory, we
|
|
206
|
+
// construct a binding for this form, lift any already-synced state on
|
|
207
|
+
// top of the SSR-rendered defaults, and proxy every local write through
|
|
208
|
+
// it. Remote writes flow back via `subscribe`. Outside a room (or with
|
|
209
|
+
// no factory registered), `bindingRef` stays null and the plain
|
|
210
|
+
// local-state path runs unchanged.
|
|
211
|
+
const collabRoom = useCollabRoom()
|
|
212
|
+
const bindingFactory = getFormCollabBinding()
|
|
213
|
+
const bindingRef = useRef<FormCollabBinding | null>(null)
|
|
214
|
+
|
|
215
|
+
useEffect(() => {
|
|
216
|
+
if (!collabRoom || !bindingFactory || !formId) return
|
|
217
|
+
|
|
218
|
+
const binding = bindingFactory({ room: collabRoom, formId, initial: valuesRef.current })
|
|
219
|
+
bindingRef.current = binding
|
|
220
|
+
|
|
221
|
+
// Lift any state already in the room (subsequent joiners — first
|
|
222
|
+
// mover sees an empty snapshot here and the local SSR defaults
|
|
223
|
+
// stay authoritative). Shallow merge so fields the binding doesn't
|
|
224
|
+
// know about (defaults the seed skipped, dotted-path Repeater rows
|
|
225
|
+
// we don't sync in F2) survive.
|
|
226
|
+
const synced = binding.get()
|
|
227
|
+
if (Object.keys(synced).length > 0) {
|
|
228
|
+
setValuesState((prev) => ({ ...prev, ...synced }))
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Subscribe to remote changes. Local writes ALSO trigger this
|
|
232
|
+
// (Yjs observers fire on local transactions too) — the per-key
|
|
233
|
+
// Object.is short-circuit below collapses them into no-op renders.
|
|
234
|
+
const unsubscribe = binding.subscribe((snapshot) => {
|
|
235
|
+
setValuesState((prev) => {
|
|
236
|
+
let changed = false
|
|
237
|
+
const next: Record<string, unknown> = { ...prev }
|
|
238
|
+
for (const [k, v] of Object.entries(snapshot)) {
|
|
239
|
+
if (!Object.is(prev[k], v)) {
|
|
240
|
+
next[k] = v
|
|
241
|
+
changed = true
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return changed ? next : prev
|
|
245
|
+
})
|
|
246
|
+
})
|
|
247
|
+
|
|
248
|
+
return () => {
|
|
249
|
+
unsubscribe()
|
|
250
|
+
binding.destroy()
|
|
251
|
+
bindingRef.current = null
|
|
252
|
+
}
|
|
253
|
+
// `valuesRef.current` is intentionally read once at mount — initial
|
|
254
|
+
// values seed the binding; subsequent edits flow through `setValue`
|
|
255
|
+
// and remote changes flow through `subscribe`.
|
|
256
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
257
|
+
}, [collabRoom, bindingFactory, formId])
|
|
187
258
|
|
|
188
259
|
/**
|
|
189
260
|
* Tier-2 follow-up to Plan #5 — fire `Field.afterStateUpdatedJs(body)`
|
|
@@ -238,6 +309,14 @@ export function FormStateProvider({
|
|
|
238
309
|
if (Object.is(prev[name], value)) return prev
|
|
239
310
|
return { ...prev, [name]: value }
|
|
240
311
|
})
|
|
312
|
+
// Phase F2 — proxy the write through the collab binding when active
|
|
313
|
+
// AND the field hasn't opted out via `.collab(false)`. Dotted-path
|
|
314
|
+
// names (Repeater / Builder row leaves) stay local-only in v1; their
|
|
315
|
+
// syncing belongs to Phase F.5 (`Y.Array<Y.Map>` row identity).
|
|
316
|
+
const binding = bindingRef.current
|
|
317
|
+
if (binding && !name.includes('.') && !fieldOptsOutOfCollab(formMetaRef.current, name)) {
|
|
318
|
+
binding.set(name, value)
|
|
319
|
+
}
|
|
241
320
|
// Fire the client-side JS hook synchronously after the state write.
|
|
242
321
|
// Dotted-name fields don't go through here (their setter is a no-op
|
|
243
322
|
// in `useFieldState`); they fire JS via `triggerLive` instead so we
|
|
@@ -311,6 +390,18 @@ export function FormStateProvider({
|
|
|
311
390
|
const serverValues = (data.form as { values?: Record<string, unknown> }).values
|
|
312
391
|
if (serverValues) {
|
|
313
392
|
setValuesState((prev) => ({ ...prev, ...serverValues }))
|
|
393
|
+
// Phase F2 (Q2) — derived fields propagate to peers via the
|
|
394
|
+
// collab binding so every client sees the auto-`slug` / etc.
|
|
395
|
+
// without each peer roundtripping the server. Skip dotted-path
|
|
396
|
+
// names + fields that opted out.
|
|
397
|
+
const binding = bindingRef.current
|
|
398
|
+
if (binding) {
|
|
399
|
+
for (const [k, v] of Object.entries(serverValues)) {
|
|
400
|
+
if (k.includes('.')) continue
|
|
401
|
+
if (fieldOptsOutOfCollab(data.form, k)) continue
|
|
402
|
+
binding.set(k, v)
|
|
403
|
+
}
|
|
404
|
+
}
|
|
314
405
|
}
|
|
315
406
|
setErrors({})
|
|
316
407
|
}
|
|
@@ -2,6 +2,8 @@ import React, { useRef, useState } from 'react'
|
|
|
2
2
|
import type { ElementMeta } from '../../../schema/Element.js'
|
|
3
3
|
import type { NotificationMeta } from '../../../notifications/Notification.js'
|
|
4
4
|
import { FormIdContext, FormStateProvider, useFormState } from '../../FormStateContext.js'
|
|
5
|
+
import { useCollabRoom } from '../../CollabRoomContext.js'
|
|
6
|
+
import { getFormCollabBinding } from '../../FormCollabBindingRegistry.js'
|
|
5
7
|
import { useNavigate } from '../../navigate.js'
|
|
6
8
|
import { useToast } from '../../Toaster.js'
|
|
7
9
|
import { renderField } from './renderField.js'
|
|
@@ -36,6 +38,16 @@ export function FormRenderer({
|
|
|
36
38
|
const serverValues = (el['values'] as Record<string, unknown> | undefined) ?? {}
|
|
37
39
|
const serverErrors = (el['errors'] as Record<string, string[]> | undefined) ?? {}
|
|
38
40
|
|
|
41
|
+
// Phase F2 — the controlled-form path also activates when we're
|
|
42
|
+
// inside a `<RecordCollabRoom>` AND a plugin (e.g.
|
|
43
|
+
// `@pilotiq-pro/collab`) registered a `FormCollabBinding` factory.
|
|
44
|
+
// Without this, forms with no `live()` fields stayed uncontrolled
|
|
45
|
+
// and the collab binding never wired up.
|
|
46
|
+
const collabRoom = useCollabRoom()
|
|
47
|
+
const collabFactory = getFormCollabBinding()
|
|
48
|
+
const collabActive = !!(collabRoom && collabFactory && formId)
|
|
49
|
+
const useControlled = !!stateUrl || collabActive
|
|
50
|
+
|
|
39
51
|
// Methods other than GET/POST are spoofed via _method, mirroring Laravel.
|
|
40
52
|
const httpMethod = method === 'get' ? 'get' : 'post'
|
|
41
53
|
const spoofedMethod = method !== 'get' && method !== 'post' ? method : undefined
|
|
@@ -148,7 +160,7 @@ export function FormRenderer({
|
|
|
148
160
|
</div>
|
|
149
161
|
)}
|
|
150
162
|
<FormIdContext.Provider value={formId}>
|
|
151
|
-
{
|
|
163
|
+
{useControlled ? (
|
|
152
164
|
<FormStateProvider initialMeta={el} initialErrors={errors} formRef={formRef}>
|
|
153
165
|
<FormBody
|
|
154
166
|
fallbackChildren={el.children ?? []}
|