@actuate-media/cms-admin 0.76.6 → 0.77.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/CHANGELOG.md +33 -0
- package/dist/__tests__/lib/preview-link.test.d.ts +2 -0
- package/dist/__tests__/lib/preview-link.test.d.ts.map +1 -0
- package/dist/__tests__/lib/preview-link.test.js +27 -0
- package/dist/__tests__/lib/preview-link.test.js.map +1 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js +19 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
- package/dist/__tests__/views/form-editor.render.test.d.ts +2 -0
- package/dist/__tests__/views/form-editor.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/form-editor.render.test.js +146 -0
- package/dist/__tests__/views/form-editor.render.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/lib/forms-service.d.ts +15 -3
- package/dist/lib/forms-service.d.ts.map +1 -1
- package/dist/lib/forms-service.js.map +1 -1
- package/dist/lib/preview-link.d.ts +7 -0
- package/dist/lib/preview-link.d.ts.map +1 -1
- package/dist/lib/preview-link.js +16 -0
- package/dist/lib/preview-link.js.map +1 -1
- package/dist/views/FormEditor.d.ts.map +1 -1
- package/dist/views/FormEditor.js +211 -116
- package/dist/views/FormEditor.js.map +1 -1
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +6 -1
- package/dist/views/page-editor/EditorTopBar.js.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.d.ts.map +1 -1
- package/dist/views/page-editor/PageSectionEditor.js +14 -1
- package/dist/views/page-editor/PageSectionEditor.js.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.js +11 -1
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/package.json +9 -9
- package/src/__tests__/lib/preview-link.test.ts +39 -0
- package/src/__tests__/views/editor-top-bar.render.test.tsx +22 -0
- package/src/__tests__/views/form-editor.render.test.tsx +186 -0
- package/src/lib/forms-service.ts +16 -1
- package/src/lib/preview-link.ts +21 -0
- package/src/views/FormEditor.tsx +655 -510
- package/src/views/page-editor/EditorTopBar.tsx +11 -4
- package/src/views/page-editor/PageSectionEditor.tsx +18 -0
- package/src/views/post-editor/PostSectionEditor.tsx +15 -0
package/src/lib/forms-service.ts
CHANGED
|
@@ -15,6 +15,7 @@ import type {
|
|
|
15
15
|
FormDefinition,
|
|
16
16
|
FormSchemaVersion,
|
|
17
17
|
FormField,
|
|
18
|
+
FormAnalyticsConfig,
|
|
18
19
|
FormNotificationSettings,
|
|
19
20
|
FormEmbedSettings,
|
|
20
21
|
FormWebhookConfig,
|
|
@@ -35,6 +36,7 @@ export type {
|
|
|
35
36
|
FormFieldType,
|
|
36
37
|
FormFieldOption,
|
|
37
38
|
FieldValidationRules,
|
|
39
|
+
FormAnalyticsConfig,
|
|
38
40
|
FormNotificationSettings,
|
|
39
41
|
FormEmbedSettings,
|
|
40
42
|
FormWebhookConfig,
|
|
@@ -132,6 +134,9 @@ export interface CreateFormPayload {
|
|
|
132
134
|
status?: FormStatus
|
|
133
135
|
template?: string
|
|
134
136
|
fields?: FormField[]
|
|
137
|
+
successMessage?: string
|
|
138
|
+
redirectUrl?: string
|
|
139
|
+
analytics?: FormAnalyticsConfig
|
|
135
140
|
}
|
|
136
141
|
|
|
137
142
|
export async function createForm(
|
|
@@ -144,9 +149,19 @@ export async function createForm(
|
|
|
144
149
|
return { data: res.data, error: res.error }
|
|
145
150
|
}
|
|
146
151
|
|
|
152
|
+
/** Patch shape accepted by `PATCH /forms/:id` (cms-core `UpdateFormInput`). */
|
|
153
|
+
export interface UpdateFormPayload {
|
|
154
|
+
name?: string
|
|
155
|
+
description?: string
|
|
156
|
+
status?: FormStatus
|
|
157
|
+
successMessage?: string
|
|
158
|
+
redirectUrl?: string
|
|
159
|
+
analytics?: FormAnalyticsConfig
|
|
160
|
+
}
|
|
161
|
+
|
|
147
162
|
export async function updateForm(
|
|
148
163
|
id: string,
|
|
149
|
-
payload:
|
|
164
|
+
payload: UpdateFormPayload,
|
|
150
165
|
): Promise<{ data?: FormDefinition; error?: string }> {
|
|
151
166
|
const res = await cmsApi<FormDefinition>(`/forms/${encodeURIComponent(id)}`, {
|
|
152
167
|
method: 'PATCH',
|
package/src/lib/preview-link.ts
CHANGED
|
@@ -55,6 +55,27 @@ export function buildPublicPreviewUrl({
|
|
|
55
55
|
return `${base}${path}?preview=${encodeURIComponent(token)}`
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Build the public **live** URL for a document — the same path as
|
|
60
|
+
* {@link buildPublicPreviewUrl} but WITHOUT a preview token, so it opens the
|
|
61
|
+
* published version rather than a draft. Home-style slugs (`home` / `index` /
|
|
62
|
+
* empty) collapse to `/`, matching how the resolver serves the site root.
|
|
63
|
+
*/
|
|
64
|
+
export function buildPublicUrl({
|
|
65
|
+
siteUrl,
|
|
66
|
+
urlPrefix,
|
|
67
|
+
slug,
|
|
68
|
+
}: Omit<PublicPreviewUrlParts, 'token'>): string {
|
|
69
|
+
const base = (siteUrl ?? '').replace(/\/+$/, '')
|
|
70
|
+
const cleanSlug = slug.replace(/^\/+|\/+$/g, '')
|
|
71
|
+
if (cleanSlug === '' || cleanSlug === 'home' || cleanSlug === 'index') {
|
|
72
|
+
return base || '/'
|
|
73
|
+
}
|
|
74
|
+
const prefix = (urlPrefix ?? '').replace(/^\/+|\/+$/g, '')
|
|
75
|
+
const path = prefix ? `/${prefix}/${cleanSlug}` : `/${cleanSlug}`
|
|
76
|
+
return `${base}${path}`
|
|
77
|
+
}
|
|
78
|
+
|
|
58
79
|
/** Resolve the public site origin: explicit config first, else the current tab's origin. */
|
|
59
80
|
export function resolveSiteUrl(configSiteUrl?: string | null): string {
|
|
60
81
|
if (configSiteUrl && configSiteUrl.trim()) return configSiteUrl.trim()
|