@actuate-media/cms-admin 0.23.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js +4 -0
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/layout/sidebar-forms-submenu.render.test.d.ts +2 -0
- package/dist/__tests__/layout/sidebar-forms-submenu.render.test.d.ts.map +1 -0
- package/dist/__tests__/layout/sidebar-forms-submenu.render.test.js +28 -0
- package/dist/__tests__/layout/sidebar-forms-submenu.render.test.js.map +1 -0
- package/dist/__tests__/views/form-entries.render.test.d.ts +2 -0
- package/dist/__tests__/views/form-entries.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/form-entries.render.test.js +112 -0
- package/dist/__tests__/views/form-entries.render.test.js.map +1 -0
- package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts +2 -0
- package/dist/__tests__/views/page-builder-block-renderer.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/page-builder-block-renderer.render.test.js +48 -0
- package/dist/__tests__/views/page-builder-block-renderer.render.test.js.map +1 -0
- package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts +2 -0
- package/dist/__tests__/views/page-builder-form-picker.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/page-builder-form-picker.render.test.js +44 -0
- package/dist/__tests__/views/page-builder-form-picker.render.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/components/forms/EntriesTable.d.ts +28 -0
- package/dist/components/forms/EntriesTable.d.ts.map +1 -0
- package/dist/components/forms/EntriesTable.js +26 -0
- package/dist/components/forms/EntriesTable.js.map +1 -0
- package/dist/layout/Sidebar.d.ts.map +1 -1
- package/dist/layout/Sidebar.js +44 -21
- package/dist/layout/Sidebar.js.map +1 -1
- package/dist/views/FormEntries.d.ts +5 -0
- package/dist/views/FormEntries.d.ts.map +1 -0
- package/dist/views/FormEntries.js +211 -0
- package/dist/views/FormEntries.js.map +1 -0
- package/dist/views/FormSubmissions.d.ts.map +1 -1
- package/dist/views/FormSubmissions.js +4 -24
- package/dist/views/FormSubmissions.js.map +1 -1
- package/dist/views/page-builder/BlockEditor.d.ts.map +1 -1
- package/dist/views/page-builder/BlockEditor.js +2 -1
- package/dist/views/page-builder/BlockEditor.js.map +1 -1
- package/dist/views/page-builder/RelationshipField.d.ts +15 -0
- package/dist/views/page-builder/RelationshipField.d.ts.map +1 -0
- package/dist/views/page-builder/RelationshipField.js +65 -0
- package/dist/views/page-builder/RelationshipField.js.map +1 -0
- package/dist/views/page-builder/block-renderers/FormPreview.d.ts +6 -0
- package/dist/views/page-builder/block-renderers/FormPreview.d.ts.map +1 -1
- package/dist/views/page-builder/block-renderers/FormPreview.js +44 -6
- package/dist/views/page-builder/block-renderers/FormPreview.js.map +1 -1
- package/dist/views/page-builder/canvas/BlockRenderer.d.ts.map +1 -1
- package/dist/views/page-builder/canvas/BlockRenderer.js +3 -9
- package/dist/views/page-builder/canvas/BlockRenderer.js.map +1 -1
- package/package.json +2 -2
- package/src/AdminRoot.tsx +4 -0
- package/src/__tests__/layout/sidebar-forms-submenu.render.test.tsx +38 -0
- package/src/__tests__/views/form-entries.render.test.tsx +133 -0
- package/src/__tests__/views/page-builder-block-renderer.render.test.tsx +66 -0
- package/src/__tests__/views/page-builder-form-picker.render.test.tsx +54 -0
- package/src/components/forms/EntriesTable.tsx +197 -0
- package/src/layout/Sidebar.tsx +75 -17
- package/src/views/FormEntries.tsx +449 -0
- package/src/views/FormSubmissions.tsx +4 -149
- package/src/views/page-builder/BlockEditor.tsx +7 -10
- package/src/views/page-builder/RelationshipField.tsx +113 -0
- package/src/views/page-builder/block-renderers/FormPreview.tsx +85 -33
- package/src/views/page-builder/canvas/BlockRenderer.tsx +10 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAwC,MAAM,yBAAyB,CAAA;AAO9F,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,CAAA;IACf,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAClE,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACzE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,MAAM,EAAE,GAAG,CAAA;CACZ;AAMD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,MAAM,GACP,EAAE,gBAAgB,2CAuHlB"}
|
|
@@ -5,6 +5,7 @@ import { Star, Copy, Trash2 } from 'lucide-react';
|
|
|
5
5
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
6
6
|
import { BlockCatalog } from '@actuate-media/cms-core';
|
|
7
7
|
import { AIBlockAssist } from './AIBlockAssist.js';
|
|
8
|
+
import { RelationshipField } from './RelationshipField.js';
|
|
8
9
|
import { TipTapEditor } from '../../components/TipTapEditor.js';
|
|
9
10
|
import { MediaPickerModal } from '../../components/MediaPickerModal.js';
|
|
10
11
|
const INPUT_CLASS = 'w-full px-3 py-2 text-sm bg-background border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring';
|
|
@@ -69,7 +70,7 @@ function FieldRenderer({ name, definition, value, onChange }) {
|
|
|
69
70
|
onChange(slug);
|
|
70
71
|
}, placeholder: definition.admin?.placeholder ?? 'page-slug', className: INPUT_CLASS })] }));
|
|
71
72
|
case 'relationship':
|
|
72
|
-
return (
|
|
73
|
+
return (_jsx(RelationshipField, { definition: definition, value: value, onChange: onChange, label: label }));
|
|
73
74
|
case 'email':
|
|
74
75
|
return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsx("input", { type: "email", value: value ?? '', onChange: (e) => onChange(e.target.value), placeholder: definition.admin?.placeholder ?? 'email@example.com', className: INPUT_CLASS })] }));
|
|
75
76
|
case 'color':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockEditor.js","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BlockEditor.js","sourceRoot":"","sources":["../../../src/views/page-builder/BlockEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FieldDefinition } from '@actuate-media/cms-core';
|
|
2
|
+
export interface RelationshipFieldProps {
|
|
3
|
+
definition: FieldDefinition;
|
|
4
|
+
value: unknown;
|
|
5
|
+
onChange: (value: unknown) => void;
|
|
6
|
+
label: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Relationship picker for page-builder block fields (e.g. the form block's
|
|
10
|
+
* `formId`). Loads the target collection via the admin API and renders a
|
|
11
|
+
* labelled dropdown. If the collection can't be loaded it degrades to a plain
|
|
12
|
+
* id input so the field is never a dead end.
|
|
13
|
+
*/
|
|
14
|
+
export declare function RelationshipField({ definition, value, onChange, label }: RelationshipFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=RelationshipField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationshipField.d.ts","sourceRoot":"","sources":["../../../src/views/page-builder/RelationshipField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAY9D,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,eAAe,CAAA;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,sBAAsB,2CAoF/F"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { cmsApi } from '../../lib/api.js';
|
|
5
|
+
const INPUT_CLASS = 'w-full px-3 py-2 text-sm bg-background border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring';
|
|
6
|
+
const LABEL_CLASS = 'text-sm font-medium text-foreground mb-1 block';
|
|
7
|
+
/**
|
|
8
|
+
* Relationship picker for page-builder block fields (e.g. the form block's
|
|
9
|
+
* `formId`). Loads the target collection via the admin API and renders a
|
|
10
|
+
* labelled dropdown. If the collection can't be loaded it degrades to a plain
|
|
11
|
+
* id input so the field is never a dead end.
|
|
12
|
+
*/
|
|
13
|
+
export function RelationshipField({ definition, value, onChange, label }) {
|
|
14
|
+
const relationTo = useMemo(() => {
|
|
15
|
+
if (definition.type !== 'relationship')
|
|
16
|
+
return '';
|
|
17
|
+
return Array.isArray(definition.relationTo)
|
|
18
|
+
? (definition.relationTo[0] ?? '')
|
|
19
|
+
: definition.relationTo;
|
|
20
|
+
}, [definition]);
|
|
21
|
+
const [options, setOptions] = useState([]);
|
|
22
|
+
const [loading, setLoading] = useState(false);
|
|
23
|
+
const [failed, setFailed] = useState(false);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!relationTo)
|
|
26
|
+
return;
|
|
27
|
+
let cancelled = false;
|
|
28
|
+
setLoading(true);
|
|
29
|
+
setFailed(false);
|
|
30
|
+
cmsApi(`/${relationTo}`)
|
|
31
|
+
.then((res) => {
|
|
32
|
+
if (cancelled)
|
|
33
|
+
return;
|
|
34
|
+
if (Array.isArray(res.data)) {
|
|
35
|
+
setOptions(res.data
|
|
36
|
+
.map((item) => ({
|
|
37
|
+
id: String(item.id ?? ''),
|
|
38
|
+
label: String(item.name ?? item.title ?? item.slug ?? item.id ?? 'Untitled'),
|
|
39
|
+
}))
|
|
40
|
+
.filter((option) => option.id));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
setFailed(true);
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
.catch(() => {
|
|
47
|
+
if (!cancelled)
|
|
48
|
+
setFailed(true);
|
|
49
|
+
})
|
|
50
|
+
.finally(() => {
|
|
51
|
+
if (!cancelled)
|
|
52
|
+
setLoading(false);
|
|
53
|
+
});
|
|
54
|
+
return () => {
|
|
55
|
+
cancelled = true;
|
|
56
|
+
};
|
|
57
|
+
}, [relationTo]);
|
|
58
|
+
const current = value ?? '';
|
|
59
|
+
const noun = relationTo === 'forms' ? 'a form' : 'an item';
|
|
60
|
+
if (failed) {
|
|
61
|
+
return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsx("input", { type: "text", value: current, onChange: (e) => onChange(e.target.value || undefined), placeholder: `Enter ${relationTo} id…`, className: INPUT_CLASS })] }));
|
|
62
|
+
}
|
|
63
|
+
return (_jsxs("div", { children: [_jsx("label", { className: LABEL_CLASS, children: label }), _jsxs("select", { value: current, onChange: (e) => onChange(e.target.value || undefined), disabled: loading, "aria-label": label, className: INPUT_CLASS, children: [_jsx("option", { value: "", children: loading ? 'Loading…' : `Select ${noun}…` }), options.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id)))] }), !loading && options.length === 0 && (_jsxs("p", { className: "text-muted-foreground mt-1 text-xs", children: ["No ", relationTo, " found."] }))] }));
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=RelationshipField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationshipField.js","sourceRoot":"","sources":["../../../src/views/page-builder/RelationshipField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import type { BlockPreviewProps } from './index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Canvas preview for the form block. When a form is linked we fetch its real
|
|
4
|
+
* name + fields so the editor sees what will render; otherwise we fall back to
|
|
5
|
+
* a generic skeleton. Network failures degrade to the skeleton rather than
|
|
6
|
+
* breaking the canvas.
|
|
7
|
+
*/
|
|
2
8
|
export declare function FormPreview({ data, variant }: BlockPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
3
9
|
//# sourceMappingURL=FormPreview.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormPreview.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAmB,EAAE,EAAE,iBAAiB,2CA4F3E"}
|
|
@@ -1,14 +1,52 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
3
4
|
import { FileText, Mail, Send } from 'lucide-react';
|
|
5
|
+
import { cmsApi } from '../../../lib/api.js';
|
|
6
|
+
/**
|
|
7
|
+
* Canvas preview for the form block. When a form is linked we fetch its real
|
|
8
|
+
* name + fields so the editor sees what will render; otherwise we fall back to
|
|
9
|
+
* a generic skeleton. Network failures degrade to the skeleton rather than
|
|
10
|
+
* breaking the canvas.
|
|
11
|
+
*/
|
|
4
12
|
export function FormPreview({ data, variant = 'contact' }) {
|
|
5
13
|
const formId = data.formId || '';
|
|
6
|
-
|
|
7
|
-
|
|
14
|
+
const [form, setForm] = useState(null);
|
|
15
|
+
const [loading, setLoading] = useState(false);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!formId) {
|
|
18
|
+
setForm(null);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
let cancelled = false;
|
|
22
|
+
setLoading(true);
|
|
23
|
+
cmsApi(`/forms/${encodeURIComponent(formId)}`)
|
|
24
|
+
.then((res) => {
|
|
25
|
+
if (cancelled)
|
|
26
|
+
return;
|
|
27
|
+
if (res.data?.name) {
|
|
28
|
+
setForm({ name: res.data.name, fields: res.data.fields ?? [] });
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
setForm(null);
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
.finally(() => {
|
|
35
|
+
if (!cancelled)
|
|
36
|
+
setLoading(false);
|
|
37
|
+
});
|
|
38
|
+
return () => {
|
|
39
|
+
cancelled = true;
|
|
40
|
+
};
|
|
41
|
+
}, [formId]);
|
|
42
|
+
if (!formId) {
|
|
43
|
+
return (_jsxs("div", { className: "border-border bg-muted/30 rounded-md border border-dashed p-6 text-center", children: [_jsx(FileText, { size: 20, className: "text-muted-foreground mx-auto" }), _jsx("p", { className: "text-muted-foreground mt-2 text-sm", children: "No form selected" }), _jsx("p", { className: "text-muted-foreground/70 text-xs", children: "Pick a form in the block settings" })] }));
|
|
8
44
|
}
|
|
9
|
-
|
|
10
|
-
|
|
45
|
+
const heading = form?.name ?? (loading ? 'Loading form…' : 'Contact Form');
|
|
46
|
+
const fields = form?.fields ?? [];
|
|
47
|
+
if (variant === 'newsletter') {
|
|
48
|
+
return (_jsxs("div", { className: "border-border rounded-md border p-6 text-center", children: [_jsx(Mail, { size: 24, className: "text-muted-foreground mx-auto" }), _jsx("p", { className: "text-foreground mt-3 text-sm font-medium", children: form?.name ?? 'Newsletter Signup' }), _jsxs("div", { className: "mx-auto mt-4 flex max-w-xs gap-2", children: [_jsx("div", { className: "border-border bg-input-background h-9 flex-1 rounded-md border" }), _jsx("div", { className: "bg-primary flex h-9 items-center rounded-md px-3", children: _jsx(Send, { size: 14, className: "text-primary-foreground" }) })] })] }));
|
|
11
49
|
}
|
|
12
|
-
return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [
|
|
50
|
+
return (_jsxs("div", { className: "border-border rounded-md border p-5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileText, { size: 16, className: "text-muted-foreground" }), _jsx("p", { className: "text-foreground text-sm font-medium", children: heading })] }), _jsx("div", { className: "mt-3 flex flex-col gap-2", children: fields.length > 0 ? (fields.slice(0, 5).map((field) => (_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground mb-1 text-xs", children: field.label || field.key }), _jsx("div", { className: `border-border bg-input-background rounded-md border ${field.type === 'textarea' ? 'h-16' : 'h-8'}` })] }, field.key)))) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-8 rounded-md border" }), _jsx("div", { className: "border-border bg-input-background h-20 rounded-md border" })] })) }), _jsx("div", { className: "mt-3", children: _jsx("span", { className: "bg-primary text-primary-foreground inline-block rounded-md px-4 py-2 text-sm", children: variant === 'custom' ? 'Submit' : 'Send Message' }) })] }));
|
|
13
51
|
}
|
|
14
52
|
//# sourceMappingURL=FormPreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"FormPreview.js","sourceRoot":"","sources":["../../../../src/views/page-builder/block-renderers/FormPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockRenderer.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BlockRenderer.d.ts","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGxD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAA;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC1C;AAMD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,kBAAkB,2CAuCvF"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
const BLOCK_ICONS = {
|
|
6
|
-
hero: Star,
|
|
7
|
-
text: Type,
|
|
8
|
-
image: Image,
|
|
9
|
-
layout: Layout,
|
|
10
|
-
};
|
|
4
|
+
import { blockRenderers, FallbackPreview } from '../block-renderers/index.js';
|
|
11
5
|
function getBlockLabel(blockType) {
|
|
12
6
|
return blockType.charAt(0).toUpperCase() + blockType.slice(1);
|
|
13
7
|
}
|
|
@@ -16,11 +10,11 @@ export function BlockRenderer({ node, selectedNodeId, onSelectNode }) {
|
|
|
16
10
|
const isSelected = selectedNodeId === node.id;
|
|
17
11
|
const blockType = node.settings.blockType;
|
|
18
12
|
const label = getBlockLabel(blockType);
|
|
19
|
-
const
|
|
13
|
+
const Preview = blockRenderers[blockType];
|
|
20
14
|
const handleClick = (e) => {
|
|
21
15
|
e.stopPropagation();
|
|
22
16
|
onSelectNode(node.id);
|
|
23
17
|
};
|
|
24
|
-
return (_jsxs("div", { "data-node-id": node.id, className: `relative min-h-[48px] transition-shadow ${isSelected ? 'ring-primary ring-2 ring-offset-2' : hovered ? 'ring-primary/50 ring-1' : ''}`, onClick: handleClick, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [(hovered || isSelected) && (_jsx("span", { className: "bg-primary text-primary-foreground absolute -top-2 -left-1 z-10 rounded px-1.5 py-0.5 text-xs font-medium", children: label })),
|
|
18
|
+
return (_jsxs("div", { "data-node-id": node.id, "data-block-type": blockType, className: `relative min-h-[48px] transition-shadow ${isSelected ? 'ring-primary ring-2 ring-offset-2' : hovered ? 'ring-primary/50 ring-1' : ''}`, onClick: handleClick, onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), children: [(hovered || isSelected) && (_jsx("span", { className: "bg-primary text-primary-foreground absolute -top-2 -left-1 z-10 rounded px-1.5 py-0.5 text-xs font-medium", children: label })), _jsx("div", { className: "pointer-events-none", children: Preview ? (_jsx(Preview, { data: node.data, variant: node.settings.variant })) : (_jsx(FallbackPreview, { blockType: blockType, data: node.data })) })] }));
|
|
25
19
|
}
|
|
26
20
|
//# sourceMappingURL=BlockRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockRenderer.js","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"BlockRenderer.js","sourceRoot":"","sources":["../../../../src/views/page-builder/canvas/BlockRenderer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAQ7E,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAsB;IACtF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,cAAc,KAAK,IAAI,CAAC,EAAE,CAAA;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IAEzC,MAAM,WAAW,GAAG,CAAC,CAAmB,EAAE,EAAE;QAC1C,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,OAAO,CACL,+BACgB,IAAI,CAAC,EAAE,qBACJ,SAAS,EAC1B,SAAS,EAAE,2CACT,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAC1F,EAAE,EACF,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EACpC,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAEpC,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAC1B,eAAM,SAAS,EAAC,2GAA2G,YACxH,KAAK,GACD,CACR,EAGD,cAAK,SAAS,EAAC,qBAAqB,YACjC,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,OAAO,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAI,CAC7D,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,CAC3D,GACG,IACF,CACP,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@actuate-media/cms-admin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/actuate-media/actuatecms.git",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"tailwindcss": "^4.0.0",
|
|
88
88
|
"typescript": "^5.7.0",
|
|
89
89
|
"vitest": "^3.0.0",
|
|
90
|
-
"@actuate-media/cms-core": "0.
|
|
90
|
+
"@actuate-media/cms-core": "0.33.0",
|
|
91
91
|
"@actuate-media/component-blocks": "0.2.0"
|
|
92
92
|
},
|
|
93
93
|
"scripts": {
|
package/src/AdminRoot.tsx
CHANGED
|
@@ -13,6 +13,7 @@ import { Settings } from './views/Settings.js'
|
|
|
13
13
|
import { Forms } from './views/Forms.js'
|
|
14
14
|
import { FormEditor } from './views/FormEditor.js'
|
|
15
15
|
import { FormSubmissions } from './views/FormSubmissions.js'
|
|
16
|
+
import { FormEntries } from './views/FormEntries.js'
|
|
16
17
|
import { SEO } from './views/SEO.js'
|
|
17
18
|
import { ScriptTags } from './views/ScriptTags.js'
|
|
18
19
|
import { ScriptTagEditor } from './views/ScriptTagEditor.js'
|
|
@@ -365,6 +366,9 @@ function AdminShell({
|
|
|
365
366
|
if (matchRoute('/forms/new')) {
|
|
366
367
|
return <FormEditor onNavigate={navigate} />
|
|
367
368
|
}
|
|
369
|
+
if (matchRoute('/forms/entries')) {
|
|
370
|
+
return <FormEntries onNavigate={navigate} />
|
|
371
|
+
}
|
|
368
372
|
const formEdit = matchRoute('/forms/:id/edit')
|
|
369
373
|
if (formEdit?.id) {
|
|
370
374
|
return <FormEditor formId={formEdit.id} onNavigate={navigate} />
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { describe, expect, it, vi } from 'vitest'
|
|
3
|
+
import { render, screen, waitFor } from '@testing-library/react'
|
|
4
|
+
|
|
5
|
+
// The Forms nav item expands into a submenu: an "All Entries" child plus one
|
|
6
|
+
// child per active form carrying its own unread badge. Mock the sidebar-counts
|
|
7
|
+
// fetcher so the children are deterministic.
|
|
8
|
+
// Distinct per-form counts so a child badge can't collide with the parent
|
|
9
|
+
// total badge (8 + 5 = 13).
|
|
10
|
+
const fetchFormsSidebarCounts = vi.fn(async () => [
|
|
11
|
+
{ formId: 'f1', name: 'Contact Us', slug: 'contact-us', status: 'active', unread: 8 },
|
|
12
|
+
{ formId: 'f2', name: 'Project Inquiry', slug: 'project-inquiry', status: 'active', unread: 5 },
|
|
13
|
+
])
|
|
14
|
+
|
|
15
|
+
vi.mock('../../lib/forms-service.js', () => ({
|
|
16
|
+
fetchFormsSidebarCounts: () => fetchFormsSidebarCounts(),
|
|
17
|
+
}))
|
|
18
|
+
|
|
19
|
+
const { Sidebar } = await import('../../layout/Sidebar.js')
|
|
20
|
+
|
|
21
|
+
describe('Sidebar Forms submenu', () => {
|
|
22
|
+
it('renders All Entries plus a child per active form', async () => {
|
|
23
|
+
render(
|
|
24
|
+
<Sidebar
|
|
25
|
+
collapsed={false}
|
|
26
|
+
onToggleCollapse={() => {}}
|
|
27
|
+
currentPath="/forms"
|
|
28
|
+
onNavigate={() => {}}
|
|
29
|
+
/>,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
await waitFor(() => expect(screen.getByText('All Entries')).toBeTruthy())
|
|
33
|
+
// Per-form children (the Contact Us label also appears; scope to nav links).
|
|
34
|
+
expect(screen.getByText('Project Inquiry')).toBeTruthy()
|
|
35
|
+
// The form with unread submissions shows its own badge.
|
|
36
|
+
expect(screen.getByLabelText('8 unread')).toBeTruthy()
|
|
37
|
+
})
|
|
38
|
+
})
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
|
|
4
|
+
|
|
5
|
+
// Drive the global All Entries inbox through a mocked forms-service so the test
|
|
6
|
+
// owns the data and can assert the cross-form table (Form column + form
|
|
7
|
+
// filter), status-pill refetches, and opening the detail drawer.
|
|
8
|
+
function makeEntry(over: Record<string, unknown> = {}) {
|
|
9
|
+
return {
|
|
10
|
+
id: 'e1',
|
|
11
|
+
entryNumber: 1,
|
|
12
|
+
formId: 'f1',
|
|
13
|
+
formName: 'Contact Us',
|
|
14
|
+
formSlug: 'contact-us',
|
|
15
|
+
data: { name: 'Jordan Avery', email: 'jordan@example.com', message: 'Hello there' },
|
|
16
|
+
senderName: 'Jordan Avery',
|
|
17
|
+
senderEmail: 'jordan@example.com',
|
|
18
|
+
preview: 'Hello there',
|
|
19
|
+
unread: true,
|
|
20
|
+
starred: false,
|
|
21
|
+
archived: false,
|
|
22
|
+
spamStatus: 'clean',
|
|
23
|
+
submittedAt: new Date().toISOString(),
|
|
24
|
+
createdAt: new Date().toISOString(),
|
|
25
|
+
updatedAt: new Date().toISOString(),
|
|
26
|
+
...over,
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const ENTRIES = [
|
|
31
|
+
makeEntry(),
|
|
32
|
+
makeEntry({
|
|
33
|
+
id: 'e2',
|
|
34
|
+
entryNumber: 2,
|
|
35
|
+
formId: 'f2',
|
|
36
|
+
formName: 'Project Inquiry',
|
|
37
|
+
formSlug: 'project-inquiry',
|
|
38
|
+
senderName: 'Priya Nair',
|
|
39
|
+
senderEmail: 'priya@example.com',
|
|
40
|
+
preview: 'A question about pricing',
|
|
41
|
+
unread: false,
|
|
42
|
+
}),
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
const fetchForms = vi.fn(async () => [
|
|
46
|
+
{ id: 'f1', name: 'Contact Us', slug: 'contact-us', status: 'active', fields: [] },
|
|
47
|
+
{ id: 'f2', name: 'Project Inquiry', slug: 'project-inquiry', status: 'active', fields: [] },
|
|
48
|
+
])
|
|
49
|
+
const fetchEntries = vi.fn(async (_p?: unknown) => ({
|
|
50
|
+
entries: ENTRIES,
|
|
51
|
+
total: ENTRIES.length,
|
|
52
|
+
page: 1,
|
|
53
|
+
pageSize: 25,
|
|
54
|
+
}))
|
|
55
|
+
const fetchEntryCounts = vi.fn(async (_p?: unknown) => ({
|
|
56
|
+
total: 2,
|
|
57
|
+
unread: 1,
|
|
58
|
+
starred: 0,
|
|
59
|
+
thisWeek: 2,
|
|
60
|
+
byForm: { f1: 1 },
|
|
61
|
+
}))
|
|
62
|
+
const fetchEntry = vi.fn(async (_id?: string) => ({ entry: ENTRIES[0], fields: [] }))
|
|
63
|
+
const updateEntry = vi.fn(async (_id?: string, _patch?: unknown) => ({ data: ENTRIES[0] }))
|
|
64
|
+
|
|
65
|
+
vi.mock('../../lib/forms-service.js', () => ({
|
|
66
|
+
fetchForms: () => fetchForms(),
|
|
67
|
+
fetchEntries: (p?: unknown) => fetchEntries(p),
|
|
68
|
+
fetchEntryCounts: (p?: unknown) => fetchEntryCounts(p),
|
|
69
|
+
fetchEntry: (id?: string) => fetchEntry(id),
|
|
70
|
+
updateEntry: (id?: string, patch?: unknown) => updateEntry(id, patch),
|
|
71
|
+
deleteEntry: vi.fn(async () => ({})),
|
|
72
|
+
bulkUpdateEntries: vi.fn(async () => ({ data: { updated: 1 } })),
|
|
73
|
+
}))
|
|
74
|
+
|
|
75
|
+
vi.mock('../../lib/forms-events.js', () => ({
|
|
76
|
+
onFormsChanged: () => () => {},
|
|
77
|
+
emitFormsChanged: vi.fn(),
|
|
78
|
+
}))
|
|
79
|
+
|
|
80
|
+
vi.mock('sonner', () => ({ toast: { success: vi.fn(), error: vi.fn(), loading: vi.fn() } }))
|
|
81
|
+
|
|
82
|
+
const { FormEntries } = await import('../../views/FormEntries.js')
|
|
83
|
+
|
|
84
|
+
beforeEach(() => {
|
|
85
|
+
fetchForms.mockClear()
|
|
86
|
+
fetchEntries.mockClear()
|
|
87
|
+
fetchEntryCounts.mockClear()
|
|
88
|
+
fetchEntry.mockClear()
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
describe('FormEntries (All Entries)', () => {
|
|
92
|
+
it('renders cross-form entries with a Form column and filter', async () => {
|
|
93
|
+
render(<FormEntries onNavigate={() => {}} />)
|
|
94
|
+
|
|
95
|
+
expect(await screen.findByText('Jordan Avery')).toBeTruthy()
|
|
96
|
+
expect(screen.getByText('Priya Nair')).toBeTruthy()
|
|
97
|
+
expect(screen.getByRole('table', { name: 'All entries' })).toBeTruthy()
|
|
98
|
+
// Form names appear (column values) and the filter is populated from fetchForms.
|
|
99
|
+
expect(screen.getByLabelText('Filter by form')).toBeTruthy()
|
|
100
|
+
await waitFor(() => expect(fetchForms).toHaveBeenCalled())
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
it('refetches scoped to a form when the form filter changes', async () => {
|
|
104
|
+
render(<FormEntries onNavigate={() => {}} />)
|
|
105
|
+
await screen.findByText('Jordan Avery')
|
|
106
|
+
|
|
107
|
+
fireEvent.change(screen.getByLabelText('Filter by form'), { target: { value: 'f2' } })
|
|
108
|
+
|
|
109
|
+
await waitFor(() =>
|
|
110
|
+
expect(fetchEntries).toHaveBeenCalledWith(expect.objectContaining({ formId: 'f2' })),
|
|
111
|
+
)
|
|
112
|
+
})
|
|
113
|
+
|
|
114
|
+
it('refetches with the unread filter when the pill is clicked', async () => {
|
|
115
|
+
render(<FormEntries onNavigate={() => {}} />)
|
|
116
|
+
await screen.findByText('Jordan Avery')
|
|
117
|
+
|
|
118
|
+
fireEvent.click(screen.getByRole('button', { name: 'Unread', pressed: false }))
|
|
119
|
+
|
|
120
|
+
await waitFor(() =>
|
|
121
|
+
expect(fetchEntries).toHaveBeenCalledWith(expect.objectContaining({ unread: true })),
|
|
122
|
+
)
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
it('opens the detail drawer when a row is clicked', async () => {
|
|
126
|
+
render(<FormEntries onNavigate={() => {}} />)
|
|
127
|
+
const row = await screen.findByText('Jordan Avery')
|
|
128
|
+
|
|
129
|
+
fireEvent.click(row)
|
|
130
|
+
|
|
131
|
+
await waitFor(() => expect(fetchEntry).toHaveBeenCalledWith('e1'))
|
|
132
|
+
})
|
|
133
|
+
})
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
|
|
4
|
+
import type { BlockNode } from '@actuate-media/cms-core'
|
|
5
|
+
|
|
6
|
+
const cmsApi = vi.fn()
|
|
7
|
+
vi.mock('../../lib/api.js', () => ({ cmsApi: (...args: unknown[]) => cmsApi(...args) }))
|
|
8
|
+
|
|
9
|
+
const { BlockRenderer } = await import('../../views/page-builder/canvas/BlockRenderer.js')
|
|
10
|
+
|
|
11
|
+
function formNode(over: Partial<BlockNode> = {}): BlockNode {
|
|
12
|
+
return {
|
|
13
|
+
id: 'node-1',
|
|
14
|
+
type: 'block',
|
|
15
|
+
settings: { blockType: 'form', variant: 'contact' },
|
|
16
|
+
data: { formId: 'f1' },
|
|
17
|
+
...over,
|
|
18
|
+
} as BlockNode
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
cmsApi.mockReset()
|
|
23
|
+
cmsApi.mockResolvedValue({
|
|
24
|
+
data: {
|
|
25
|
+
name: 'Contact Us',
|
|
26
|
+
fields: [
|
|
27
|
+
{ key: 'name', label: 'Full Name', type: 'text' },
|
|
28
|
+
{ key: 'message', label: 'Message', type: 'textarea' },
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
status: 200,
|
|
32
|
+
})
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
describe('canvas BlockRenderer', () => {
|
|
36
|
+
it('renders the live form preview with the linked form name and fields', async () => {
|
|
37
|
+
render(<BlockRenderer node={formNode()} selectedNodeId={null} onSelectNode={vi.fn()} />)
|
|
38
|
+
await waitFor(() => expect(screen.getByText('Contact Us')).toBeTruthy())
|
|
39
|
+
expect(cmsApi).toHaveBeenCalledWith('/forms/f1')
|
|
40
|
+
expect(screen.getByText('Full Name')).toBeTruthy()
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('selects the node on click', () => {
|
|
44
|
+
const onSelectNode = vi.fn()
|
|
45
|
+
const { container } = render(
|
|
46
|
+
<BlockRenderer
|
|
47
|
+
node={formNode({ data: {} })}
|
|
48
|
+
selectedNodeId={null}
|
|
49
|
+
onSelectNode={onSelectNode}
|
|
50
|
+
/>,
|
|
51
|
+
)
|
|
52
|
+
fireEvent.click(container.querySelector('[data-node-id="node-1"]')!)
|
|
53
|
+
expect(onSelectNode).toHaveBeenCalledWith('node-1')
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
it('falls back to a placeholder for unknown block types', () => {
|
|
57
|
+
render(
|
|
58
|
+
<BlockRenderer
|
|
59
|
+
node={formNode({ settings: { blockType: 'widget' }, data: {} })}
|
|
60
|
+
selectedNodeId={null}
|
|
61
|
+
onSelectNode={vi.fn()}
|
|
62
|
+
/>,
|
|
63
|
+
)
|
|
64
|
+
expect(screen.getByText('No preview available')).toBeTruthy()
|
|
65
|
+
})
|
|
66
|
+
})
|