@actuate-media/cms-admin 0.47.0 → 0.48.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 +9 -0
- package/dist/__tests__/views/use-site-preview.render.test.d.ts +2 -0
- package/dist/__tests__/views/use-site-preview.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/use-site-preview.render.test.js +86 -0
- package/dist/__tests__/views/use-site-preview.render.test.js.map +1 -0
- package/dist/views/page-editor/EditorTopBar.d.ts +8 -1
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +7 -3
- 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/page-editor/SitePreviewFrame.d.ts +18 -0
- package/dist/views/page-editor/SitePreviewFrame.d.ts.map +1 -0
- package/dist/views/page-editor/SitePreviewFrame.js +45 -0
- package/dist/views/page-editor/SitePreviewFrame.js.map +1 -0
- package/dist/views/page-editor/useSitePreview.d.ts +33 -0
- package/dist/views/page-editor/useSitePreview.d.ts.map +1 -0
- package/dist/views/page-editor/useSitePreview.js +72 -0
- package/dist/views/page-editor/useSitePreview.js.map +1 -0
- package/dist/views/post-editor/PostSectionEditor.d.ts.map +1 -1
- package/dist/views/post-editor/PostSectionEditor.js +14 -1
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/views/use-site-preview.render.test.tsx +122 -0
- package/src/views/page-editor/EditorTopBar.tsx +31 -0
- package/src/views/page-editor/PageSectionEditor.tsx +33 -8
- package/src/views/page-editor/SitePreviewFrame.tsx +85 -0
- package/src/views/page-editor/useSitePreview.ts +117 -0
- package/src/views/post-editor/PostSectionEditor.tsx +35 -10
|
@@ -42,6 +42,8 @@ import {
|
|
|
42
42
|
} from '../page-editor/sections/index.js'
|
|
43
43
|
import { DEFAULT_VIEWPORT, type ViewportId } from '../page-editor/viewports.js'
|
|
44
44
|
import { EditorTopBar, type SaveState } from '../page-editor/EditorTopBar.js'
|
|
45
|
+
import { SitePreviewFrame } from '../page-editor/SitePreviewFrame.js'
|
|
46
|
+
import { useSitePreview } from '../page-editor/useSitePreview.js'
|
|
45
47
|
import { SectionsPanel } from '../page-editor/SectionsPanel.js'
|
|
46
48
|
import { SectionInspector } from '../page-editor/SectionInspector.js'
|
|
47
49
|
import { AddSectionModal } from '../page-editor/AddSectionModal.js'
|
|
@@ -312,6 +314,18 @@ export function PostSectionEditor({
|
|
|
312
314
|
}
|
|
313
315
|
}, [post, documentId, postType, onNavigate])
|
|
314
316
|
|
|
317
|
+
// Inline branded preview — iframe of the public site rendering this draft.
|
|
318
|
+
const sitePreview = useSitePreview({
|
|
319
|
+
collection: postType,
|
|
320
|
+
documentId: post?.id,
|
|
321
|
+
slug: post?.slug,
|
|
322
|
+
urlPrefix: config?.collections?.[postType]?.urlPrefix ?? postType,
|
|
323
|
+
siteUrl: config?.seo?.siteUrl,
|
|
324
|
+
dirty,
|
|
325
|
+
saveState,
|
|
326
|
+
saveDraft: handleSaveDraft,
|
|
327
|
+
})
|
|
328
|
+
|
|
315
329
|
const requestPublish = useCallback(() => {
|
|
316
330
|
if (!post) return
|
|
317
331
|
const result = validatePost(post, true)
|
|
@@ -491,6 +505,8 @@ export function PostSectionEditor({
|
|
|
491
505
|
onBack={() => guardedNavigate('/posts')}
|
|
492
506
|
onPreview={handlePreview}
|
|
493
507
|
onViewOnSite={post.id ? handleViewOnSite : undefined}
|
|
508
|
+
sitePreview={sitePreview.active}
|
|
509
|
+
onToggleSitePreview={post.id && post.slug ? sitePreview.toggle : undefined}
|
|
494
510
|
onHistory={post.id ? () => setHistoryOpen(true) : undefined}
|
|
495
511
|
onOpenSettings={() => setFieldsOpen(true)}
|
|
496
512
|
onSaveDraft={handleSaveDraft}
|
|
@@ -537,16 +553,25 @@ export function PostSectionEditor({
|
|
|
537
553
|
/>
|
|
538
554
|
|
|
539
555
|
<div className="flex-1 overflow-hidden">
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
556
|
+
{sitePreview.active ? (
|
|
557
|
+
<SitePreviewFrame
|
|
558
|
+
src={sitePreview.url}
|
|
559
|
+
viewport={viewport}
|
|
560
|
+
reloadKey={sitePreview.reloadKey}
|
|
561
|
+
title={`Site preview: ${post.title || `New ${typeLabel}`}`}
|
|
562
|
+
/>
|
|
563
|
+
) : (
|
|
564
|
+
<PostEditorCanvas
|
|
565
|
+
sections={post.sections}
|
|
566
|
+
header={header}
|
|
567
|
+
context={context}
|
|
568
|
+
selectedId={selectedId}
|
|
569
|
+
viewport={viewport}
|
|
570
|
+
onSelect={setSelectedId}
|
|
571
|
+
onAddSection={() => setAddOpen(true)}
|
|
572
|
+
structuralTypes={structuralTypes}
|
|
573
|
+
/>
|
|
574
|
+
)}
|
|
550
575
|
</div>
|
|
551
576
|
|
|
552
577
|
{selected && (
|