@prenta/admin 2.0.3 → 2.1.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 +6 -0
- package/dist/AdminRoot.d.ts.map +1 -1
- package/dist/AdminRoot.js +2 -6
- package/dist/AdminRoot.js.map +1 -1
- package/dist/__tests__/lib/admin-shortcuts.test.d.ts +2 -0
- package/dist/__tests__/lib/admin-shortcuts.test.d.ts.map +1 -0
- package/dist/__tests__/lib/admin-shortcuts.test.js +11 -0
- package/dist/__tests__/lib/admin-shortcuts.test.js.map +1 -0
- package/dist/__tests__/lib/editor-history.test.d.ts +2 -0
- package/dist/__tests__/lib/editor-history.test.d.ts.map +1 -0
- package/dist/__tests__/lib/editor-history.test.js +76 -0
- package/dist/__tests__/lib/editor-history.test.js.map +1 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js +17 -0
- package/dist/__tests__/views/editor-top-bar.render.test.js.map +1 -1
- package/dist/__tests__/views/post-section-editor.test.js +16 -0
- package/dist/__tests__/views/post-section-editor.test.js.map +1 -1
- package/dist/hooks/use-editor-history.d.ts +19 -0
- package/dist/hooks/use-editor-history.d.ts.map +1 -0
- package/dist/hooks/use-editor-history.js +94 -0
- package/dist/hooks/use-editor-history.js.map +1 -0
- package/dist/lib/admin-shortcuts.d.ts +6 -0
- package/dist/lib/admin-shortcuts.d.ts.map +1 -0
- package/dist/lib/admin-shortcuts.js +11 -0
- package/dist/lib/admin-shortcuts.js.map +1 -0
- package/dist/lib/editor-history.d.ts +24 -0
- package/dist/lib/editor-history.d.ts.map +1 -0
- package/dist/lib/editor-history.js +61 -0
- package/dist/lib/editor-history.js.map +1 -0
- package/dist/views/page-editor/EditorTopBar.d.ts +6 -1
- package/dist/views/page-editor/EditorTopBar.d.ts.map +1 -1
- package/dist/views/page-editor/EditorTopBar.js +3 -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 +37 -9
- 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 +44 -11
- package/dist/views/post-editor/PostSectionEditor.js.map +1 -1
- package/package.json +2 -2
- package/src/AdminRoot.tsx +5 -9
- package/src/__tests__/lib/admin-shortcuts.test.ts +11 -0
- package/src/__tests__/lib/editor-history.test.ts +99 -0
- package/src/__tests__/views/editor-top-bar.render.test.tsx +27 -0
- package/src/__tests__/views/post-section-editor.test.tsx +30 -0
- package/src/hooks/use-editor-history.ts +102 -0
- package/src/lib/admin-shortcuts.ts +10 -0
- package/src/lib/editor-history.ts +83 -0
- package/src/views/page-editor/EditorTopBar.tsx +35 -0
- package/src/views/page-editor/PageSectionEditor.tsx +53 -10
- package/src/views/post-editor/PostSectionEditor.tsx +64 -14
|
@@ -12,6 +12,7 @@ import { SeoEditorPane } from '../../components/seo/SeoEditorPane.js';
|
|
|
12
12
|
import { ErrorBoundary } from '../../components/ErrorBoundary.js';
|
|
13
13
|
import { VersionHistoryPanel } from '../page-editor/VersionHistoryPanel.js';
|
|
14
14
|
import { useDebouncedAutosave } from '../page-editor/autosave.js';
|
|
15
|
+
import { useEditorHistory, useSectionEditorShortcuts } from '../../hooks/use-editor-history.js';
|
|
15
16
|
import { ReviewBar } from '../page-editor/ReviewBar.js';
|
|
16
17
|
import { fetchPageVersions, restorePageVersion, } from '../../lib/version-history.js';
|
|
17
18
|
import { changedSectionIds, diffVersions } from '../../lib/version-diff.js';
|
|
@@ -113,10 +114,13 @@ export function PostSectionEditor({ postType, documentId, config, session, onNav
|
|
|
113
114
|
* as a publish does; missing one would leave the guard comparing against
|
|
114
115
|
* content no longer on the site.
|
|
115
116
|
*/
|
|
117
|
+
const savedJson = useRef('');
|
|
116
118
|
const acceptPost = useCallback((p) => {
|
|
119
|
+
savedJson.current = JSON.stringify(p);
|
|
117
120
|
setPost(p);
|
|
118
121
|
setBaseline(snapshotBaseline(p.sections, p.status));
|
|
119
122
|
}, []);
|
|
123
|
+
const { note, undo, redo, canUndo, canRedo } = useEditorHistory(post, documentId ?? null);
|
|
120
124
|
const { canEdit } = useMemo(() => deriveCan(session), [session]);
|
|
121
125
|
const sessionRole = String(session?.user?.role ?? '');
|
|
122
126
|
const customRenderers = useAdminSectionRenderers();
|
|
@@ -277,16 +281,21 @@ export function PostSectionEditor({ postType, documentId, config, session, onNav
|
|
|
277
281
|
relatedPosts: post?.canvasRelatedPosts ?? siblingPosts,
|
|
278
282
|
}), [post, session, siblingPosts]);
|
|
279
283
|
// ─── Section mutations ───────────────────────────────────────────────
|
|
280
|
-
const mutateSections = useCallback((fn) => {
|
|
281
|
-
setPost((prev) =>
|
|
284
|
+
const mutateSections = useCallback((fn, key, coalesce = false) => {
|
|
285
|
+
setPost((prev) => {
|
|
286
|
+
if (!prev)
|
|
287
|
+
return prev;
|
|
288
|
+
note(prev, key, coalesce);
|
|
289
|
+
return { ...prev, sections: fn(prev.sections) };
|
|
290
|
+
});
|
|
282
291
|
setDirty(true);
|
|
283
292
|
setSaveState('idle');
|
|
284
|
-
}, []);
|
|
285
|
-
const handleToggleVisibility = useCallback((id) => mutateSections((s) => toggleSectionVisibility(s, id)), [mutateSections]);
|
|
293
|
+
}, [note]);
|
|
294
|
+
const handleToggleVisibility = useCallback((id) => mutateSections((s) => toggleSectionVisibility(s, id), `visibility:${id}`), [mutateSections]);
|
|
286
295
|
const handleContentChange = useCallback((patch) => {
|
|
287
296
|
if (!selectedId)
|
|
288
297
|
return;
|
|
289
|
-
mutateSections((s) => updateSectionContent(s, selectedId, patch));
|
|
298
|
+
mutateSections((s) => updateSectionContent(s, selectedId, patch), `content:${selectedId}`, true);
|
|
290
299
|
}, [selectedId, mutateSections]);
|
|
291
300
|
// No `handleSettingsChange`: background, spacing, anchor and CSS class are
|
|
292
301
|
// template-authored (docs/design-owned-sections.md). Values round-trip on
|
|
@@ -294,18 +303,37 @@ export function PostSectionEditor({ postType, documentId, config, session, onNav
|
|
|
294
303
|
const handleMetaChange = useCallback((patch) => {
|
|
295
304
|
if (!selectedId)
|
|
296
305
|
return;
|
|
297
|
-
mutateSections((s) => updateSectionMeta(s, selectedId, patch));
|
|
306
|
+
mutateSections((s) => updateSectionMeta(s, selectedId, patch), `meta:${selectedId}`, true);
|
|
298
307
|
}, [selectedId, mutateSections]);
|
|
308
|
+
const restoreEdit = useCallback((next) => {
|
|
309
|
+
if (!next)
|
|
310
|
+
return;
|
|
311
|
+
setPost(next);
|
|
312
|
+
setDirty(JSON.stringify(next) !== savedJson.current);
|
|
313
|
+
setSaveState('idle');
|
|
314
|
+
}, []);
|
|
315
|
+
const handleUndo = useCallback(() => restoreEdit(undo()), [restoreEdit, undo]);
|
|
316
|
+
const handleRedo = useCallback(() => restoreEdit(redo()), [restoreEdit, redo]);
|
|
299
317
|
const handleFields = useCallback((patch) => {
|
|
300
|
-
setPost((prev) =>
|
|
318
|
+
setPost((prev) => {
|
|
319
|
+
if (!prev)
|
|
320
|
+
return prev;
|
|
321
|
+
note(prev, 'fields', true);
|
|
322
|
+
return { ...prev, ...patch };
|
|
323
|
+
});
|
|
301
324
|
setDirty(true);
|
|
302
325
|
setSaveState('idle');
|
|
303
|
-
}, []);
|
|
326
|
+
}, [note]);
|
|
304
327
|
const handlePostBodyChange = useCallback((body) => {
|
|
305
|
-
setPost((prev) =>
|
|
328
|
+
setPost((prev) => {
|
|
329
|
+
if (!prev)
|
|
330
|
+
return prev;
|
|
331
|
+
note(prev, 'body', true);
|
|
332
|
+
return { ...prev, body };
|
|
333
|
+
});
|
|
306
334
|
setDirty(true);
|
|
307
335
|
setSaveState('idle');
|
|
308
|
-
}, []);
|
|
336
|
+
}, [note]);
|
|
309
337
|
// ─── Save / publish ──────────────────────────────────────────────────
|
|
310
338
|
const latestPost = useRef(post);
|
|
311
339
|
latestPost.current = post;
|
|
@@ -418,6 +446,11 @@ export function PostSectionEditor({ postType, documentId, config, session, onNav
|
|
|
418
446
|
}, [post?.id, postType, acceptPost, closeHistory, loadVersions]);
|
|
419
447
|
const effectiveCanEdit = canEdit && !reviewing;
|
|
420
448
|
const canRestoreVersion = canEdit;
|
|
449
|
+
useSectionEditorShortcuts({
|
|
450
|
+
enabled: effectiveCanEdit,
|
|
451
|
+
onUndo: handleUndo,
|
|
452
|
+
onRedo: handleRedo,
|
|
453
|
+
});
|
|
421
454
|
useDebouncedAutosave({
|
|
422
455
|
dirty,
|
|
423
456
|
enabled: Boolean(documentId) && effectiveCanEdit && !publishing,
|
|
@@ -589,7 +622,7 @@ export function PostSectionEditor({ postType, documentId, config, session, onNav
|
|
|
589
622
|
const structuralTypes = Array.from(new Set(post.sections
|
|
590
623
|
.filter((s) => !hasCanvasRenderer(s.sectionType) && !customRenderers[s.sectionType])
|
|
591
624
|
.map((s) => s.sectionType)));
|
|
592
|
-
return (_jsxs(ErrorBoundary, { children: [_jsxs("div", { className: "bg-background flex h-full flex-col overflow-hidden", children: [_jsx(EditorTopBar, { title: post.title || `New ${typeLabel}`, status: post.status, workflowStage: post.workflowStage, reviewNote: post.reviewNote, role: sessionRole, dirty: dirty, saveState: saveState, publishing: publishing, canEdit: effectiveCanEdit, publishReady: publishReady, publishDisabledReason: publishDisabledReason, viewport: viewport, backLabel: "Posts", onViewport: setViewport, zoom: zoom, canvasScale: canvasScale, onZoom: setZoom, onBack: () => guardedNavigate('/posts'), onViewOnSite: post.id && post.slug ? handleViewOnSite : undefined, onShare: post.id ? handleShare : undefined, hasPublicSiteUrl: Boolean(publicSiteUrl), matchesAdminOrigin: matchesAdminOrigin, historyOpen: historyOpen, onHistory: post.id ? () => (historyOpen ? closeHistory() : openHistory()) : undefined, onOpenSettings: () => setFieldsOpen(true), onOpenSeo: handleToggleSeo, seoOpen: seoOpen, seoScore: audit?.seo.score ?? undefined, seoScoreBand: typeof audit?.seo.score === 'number' ? scoreBand(audit.seo.score) : undefined, onSaveDraft: handleSaveDraft, onSubmitForReview: handleSubmitForReview, onApprove: handleApprove, onRequestChanges: handleRequestChanges, onSchedule: post.id ? requestSchedule : undefined, scheduleReady: Boolean(post.id), scheduledAt: post.scheduledAt, scheduledUnpublishAt: post.scheduledUnpublishAt, structuralTypes: structuralTypes }), unmanagedTypes.length > 0 && (_jsxs("div", { role: "status", className: "border-border bg-muted/50 flex items-start gap-3 border-b px-4 py-2.5", children: [_jsx(Lock, { className: "text-muted-foreground mt-0.5 shrink-0", size: 16, "aria-hidden": true }), _jsxs("p", { className: "text-muted-foreground flex-1 text-sm", children: ["This post has", ' ', _jsxs("span", { className: "text-foreground font-medium", children: [unmanagedTypes.length, " section type", unmanagedTypes.length > 1 ? 's' : ''] }), ' ', "managed outside the editor (", unmanagedTypes.join(', '), "). They are preserved on save but edited in your seed script or code, not here."] })] })), validation && (_jsx(ValidationSummary, { errors: validation.errors, warnings: validation.warnings, onDismiss: () => setValidation(null) })), _jsx(ReflowContext.Provider, { value: reflowContext, children: _jsxs("div", { className: "prenta-editor-body relative flex flex-1 overflow-hidden", children: [_jsx(EditorRail, { collapsedLabel: activeRailTab.label, children: ({ width, dragging, collapse }) => (_jsxs(_Fragment, { children: [_jsx(EditorRailTabs, { tabs: railTabs, active: railTab, onChange: setRailTab }), _jsx(RailHeader, { title: activeRailTab.title, width: width, dragging: dragging, onCollapse: collapse }), _jsx("div", { role: "tabpanel", id: `rail-panel-${railTab}`, "aria-labelledby": `rail-tab-${railTab}`, className: "flex min-h-0 flex-1 flex-col", children: railTab === 'sections' ? (_jsx(SectionsList, { sections: post.sections, selectedId: selectedId, canEdit: effectiveCanEdit, onSelect: handleSelectSection, onToggleVisibility: handleToggleVisibility, renderEditor: reviewing
|
|
625
|
+
return (_jsxs(ErrorBoundary, { children: [_jsxs("div", { className: "bg-background flex h-full flex-col overflow-hidden", children: [_jsx(EditorTopBar, { title: post.title || `New ${typeLabel}`, status: post.status, workflowStage: post.workflowStage, reviewNote: post.reviewNote, role: sessionRole, dirty: dirty, saveState: saveState, publishing: publishing, canEdit: effectiveCanEdit, publishReady: publishReady, publishDisabledReason: publishDisabledReason, viewport: viewport, backLabel: "Posts", onViewport: setViewport, zoom: zoom, canvasScale: canvasScale, onZoom: setZoom, onBack: () => guardedNavigate('/posts'), onViewOnSite: post.id && post.slug ? handleViewOnSite : undefined, onShare: post.id ? handleShare : undefined, hasPublicSiteUrl: Boolean(publicSiteUrl), matchesAdminOrigin: matchesAdminOrigin, historyOpen: historyOpen, onHistory: post.id ? () => (historyOpen ? closeHistory() : openHistory()) : undefined, onOpenSettings: () => setFieldsOpen(true), onOpenSeo: handleToggleSeo, seoOpen: seoOpen, seoScore: audit?.seo.score ?? undefined, seoScoreBand: typeof audit?.seo.score === 'number' ? scoreBand(audit.seo.score) : undefined, onSaveDraft: handleSaveDraft, onUndo: effectiveCanEdit ? handleUndo : undefined, onRedo: effectiveCanEdit ? handleRedo : undefined, canUndo: canUndo, canRedo: canRedo, onSubmitForReview: handleSubmitForReview, onApprove: handleApprove, onRequestChanges: handleRequestChanges, onSchedule: post.id ? requestSchedule : undefined, scheduleReady: Boolean(post.id), scheduledAt: post.scheduledAt, scheduledUnpublishAt: post.scheduledUnpublishAt, structuralTypes: structuralTypes }), unmanagedTypes.length > 0 && (_jsxs("div", { role: "status", className: "border-border bg-muted/50 flex items-start gap-3 border-b px-4 py-2.5", children: [_jsx(Lock, { className: "text-muted-foreground mt-0.5 shrink-0", size: 16, "aria-hidden": true }), _jsxs("p", { className: "text-muted-foreground flex-1 text-sm", children: ["This post has", ' ', _jsxs("span", { className: "text-foreground font-medium", children: [unmanagedTypes.length, " section type", unmanagedTypes.length > 1 ? 's' : ''] }), ' ', "managed outside the editor (", unmanagedTypes.join(', '), "). They are preserved on save but edited in your seed script or code, not here."] })] })), validation && (_jsx(ValidationSummary, { errors: validation.errors, warnings: validation.warnings, onDismiss: () => setValidation(null) })), _jsx(ReflowContext.Provider, { value: reflowContext, children: _jsxs("div", { className: "prenta-editor-body relative flex flex-1 overflow-hidden", children: [_jsx(EditorRail, { collapsedLabel: activeRailTab.label, children: ({ width, dragging, collapse }) => (_jsxs(_Fragment, { children: [_jsx(EditorRailTabs, { tabs: railTabs, active: railTab, onChange: setRailTab }), _jsx(RailHeader, { title: activeRailTab.title, width: width, dragging: dragging, onCollapse: collapse }), _jsx("div", { role: "tabpanel", id: `rail-panel-${railTab}`, "aria-labelledby": `rail-tab-${railTab}`, className: "flex min-h-0 flex-1 flex-col", children: railTab === 'sections' ? (_jsx(SectionsList, { sections: post.sections, selectedId: selectedId, canEdit: effectiveCanEdit, onSelect: handleSelectSection, onToggleVisibility: handleToggleVisibility, renderEditor: reviewing
|
|
593
626
|
? undefined
|
|
594
627
|
: (section) => (_jsx(SectionEditForm, { section: section, canEdit: effectiveCanEdit, onContentChange: handleContentChange, onMetaChange: handleMetaChange, postBody: post.body, onPostBodyChange: handlePostBodyChange })) })) : railTab === 'page' ? (_jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", children: _jsx(PostTab, { post: post, canEdit: effectiveCanEdit, fields: config?.collections?.[postType]?.fields, onChange: handleFields }) })) : (_jsx(SeoEditorPane, { entityType: "post", entityId: post.id, slug: post.slug, auditSections: post.sections, onAuditChange: setLiveAudit, contentHtml: seoContentHtml, title: post.title, bodyHtml: post.body, featuredImage: post.featuredImageUrl, draftMeta: {
|
|
595
628
|
seoTitle: post.seoTitle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostSectionEditor.js","sourceRoot":"","sources":["../../../src/views/post-editor/PostSectionEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PostSectionEditor.js","sourceRoot":"","sources":["../../../src/views/post-editor/PostSectionEditor.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prenta/admin",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -102,9 +102,9 @@
|
|
|
102
102
|
"vitest": "^4.1.0",
|
|
103
103
|
"@prenta/component-blocks": "0.3.1",
|
|
104
104
|
"@prenta/plugin-ai": "4.0.1",
|
|
105
|
+
"@prenta/core": "8.2.0",
|
|
105
106
|
"@prenta/plugin-blocks": "1.0.1",
|
|
106
107
|
"@prenta/plugin-commerce": "1.0.1",
|
|
107
|
-
"@prenta/core": "8.2.0",
|
|
108
108
|
"@prenta/plugin-forms": "1.0.1",
|
|
109
109
|
"@prenta/plugin-media": "1.0.1",
|
|
110
110
|
"@prenta/plugin-navigation": "1.0.1",
|
package/src/AdminRoot.tsx
CHANGED
|
@@ -7,6 +7,7 @@ import { Layout } from './layout/Layout.js'
|
|
|
7
7
|
import { adminPortalContainer } from './lib/portal-container.js'
|
|
8
8
|
import { ADMIN_ROOT_ATTR, getAdminRootElement } from './lib/admin-root-element.js'
|
|
9
9
|
import { useAdminRouter, parseRouteQuery } from './router/index.js'
|
|
10
|
+
import { ADMIN_KEYBOARD_SHORTCUTS } from './lib/admin-shortcuts.js'
|
|
10
11
|
import { cmsApi, ensureCsrfToken } from './lib/api.js'
|
|
11
12
|
import { setDocumentFavicon, BRAND_UPDATED_EVENT } from './lib/favicon.js'
|
|
12
13
|
import {
|
|
@@ -740,15 +741,10 @@ function ShortcutHelp({ open, onClose }: { open: boolean; onClose: () => void })
|
|
|
740
741
|
>
|
|
741
742
|
<Dialog.Title className="mb-4 text-lg font-medium">Keyboard Shortcuts</Dialog.Title>
|
|
742
743
|
<div className="space-y-3 text-sm">
|
|
743
|
-
{
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
['Esc', 'Close panel / modal'],
|
|
748
|
-
].map(([key, desc]) => (
|
|
749
|
-
<div key={key} className="flex items-center justify-between">
|
|
750
|
-
<span className="text-muted-foreground">{desc}</span>
|
|
751
|
-
<kbd className="bg-muted rounded px-2 py-1 font-mono text-xs">{key}</kbd>
|
|
744
|
+
{ADMIN_KEYBOARD_SHORTCUTS.map((row) => (
|
|
745
|
+
<div key={row.keys} className="flex items-center justify-between gap-4">
|
|
746
|
+
<span className="text-muted-foreground">{row.label}</span>
|
|
747
|
+
<kbd className="bg-muted rounded px-2 py-1 font-mono text-xs">{row.keys}</kbd>
|
|
752
748
|
</div>
|
|
753
749
|
))}
|
|
754
750
|
</div>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { ADMIN_KEYBOARD_SHORTCUTS } from '../../lib/admin-shortcuts.js'
|
|
3
|
+
|
|
4
|
+
describe('admin keyboard shortcuts', () => {
|
|
5
|
+
it('documents undo and redo for the section editor', () => {
|
|
6
|
+
const labels = ADMIN_KEYBOARD_SHORTCUTS.map((row) => `${row.keys} ${row.label}`)
|
|
7
|
+
expect(labels).toContain('⌘ Z Undo in the section editor')
|
|
8
|
+
expect(labels).toContain('⌘ ⇧ Z Redo in the section editor')
|
|
9
|
+
expect(labels).toContain('⌘ Y Redo in the section editor')
|
|
10
|
+
})
|
|
11
|
+
})
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { describe, expect, it } from 'vitest'
|
|
3
|
+
import {
|
|
4
|
+
createEditorHistory,
|
|
5
|
+
isNativeEditingTarget,
|
|
6
|
+
pushEditorHistory,
|
|
7
|
+
redoEditorHistory,
|
|
8
|
+
undoEditorHistory,
|
|
9
|
+
} from '../../lib/editor-history.js'
|
|
10
|
+
|
|
11
|
+
describe('editor history', () => {
|
|
12
|
+
it('undo restores the snapshot from before the edit and redo puts it back', () => {
|
|
13
|
+
let history = pushEditorHistory(createEditorHistory<string>(), 'a', {
|
|
14
|
+
key: 'visibility',
|
|
15
|
+
now: 1_000,
|
|
16
|
+
})
|
|
17
|
+
const undone = undoEditorHistory(history, 'b')
|
|
18
|
+
expect(undone?.value).toBe('a')
|
|
19
|
+
const redone = redoEditorHistory(undone!.history, undone!.value)
|
|
20
|
+
expect(redone?.value).toBe('b')
|
|
21
|
+
history = redone!.history
|
|
22
|
+
expect(undoEditorHistory(history, 'b')?.value).toBe('a')
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('a new edit drops the redo stack', () => {
|
|
26
|
+
const once = pushEditorHistory(createEditorHistory<string>(), 'a', {
|
|
27
|
+
key: 'visibility',
|
|
28
|
+
now: 1_000,
|
|
29
|
+
})
|
|
30
|
+
const undone = undoEditorHistory(once, 'b')!
|
|
31
|
+
const again = pushEditorHistory(undone.history, 'a', { key: 'visibility', now: 2_000 })
|
|
32
|
+
expect(redoEditorHistory(again, 'c')).toBeNull()
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it('coalesces rapid edits with the same key into one step', () => {
|
|
36
|
+
const first = pushEditorHistory(
|
|
37
|
+
createEditorHistory<{ n: number }>(),
|
|
38
|
+
{ n: 0 },
|
|
39
|
+
{
|
|
40
|
+
key: 'content:s1',
|
|
41
|
+
now: 5_000,
|
|
42
|
+
coalesce: true,
|
|
43
|
+
},
|
|
44
|
+
)
|
|
45
|
+
const second = pushEditorHistory(
|
|
46
|
+
first,
|
|
47
|
+
{ n: 1 },
|
|
48
|
+
{
|
|
49
|
+
key: 'content:s1',
|
|
50
|
+
now: 5_000 + 799,
|
|
51
|
+
coalesce: true,
|
|
52
|
+
},
|
|
53
|
+
)
|
|
54
|
+
expect(second.past).toEqual([{ n: 0 }])
|
|
55
|
+
const later = pushEditorHistory(
|
|
56
|
+
second,
|
|
57
|
+
{ n: 2 },
|
|
58
|
+
{
|
|
59
|
+
key: 'content:s1',
|
|
60
|
+
now: 5_000 + 799 + 800,
|
|
61
|
+
coalesce: true,
|
|
62
|
+
},
|
|
63
|
+
)
|
|
64
|
+
expect(later.past).toEqual([{ n: 0 }, { n: 2 }])
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
it('does not coalesce a different key', () => {
|
|
68
|
+
const first = pushEditorHistory(createEditorHistory<string>(), 'a', {
|
|
69
|
+
key: 'content:s1',
|
|
70
|
+
now: 1_000,
|
|
71
|
+
coalesce: true,
|
|
72
|
+
})
|
|
73
|
+
const second = pushEditorHistory(first, 'b', {
|
|
74
|
+
key: 'content:s2',
|
|
75
|
+
now: 1_100,
|
|
76
|
+
coalesce: true,
|
|
77
|
+
})
|
|
78
|
+
expect(second.past).toEqual(['a', 'b'])
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it('drops the oldest snapshot past the limit', () => {
|
|
82
|
+
let history = createEditorHistory<number>()
|
|
83
|
+
for (let i = 0; i < 53; i++) {
|
|
84
|
+
history = pushEditorHistory(history, i, { key: `step-${i}`, now: i })
|
|
85
|
+
}
|
|
86
|
+
expect(history.past).toHaveLength(50)
|
|
87
|
+
expect(history.past[0]).toBe(3)
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('leaves undo to text fields and rich text', () => {
|
|
91
|
+
expect(isNativeEditingTarget(null)).toBe(false)
|
|
92
|
+
const input = document.createElement('input')
|
|
93
|
+
const editable = document.createElement('div')
|
|
94
|
+
editable.contentEditable = 'true'
|
|
95
|
+
expect(isNativeEditingTarget(input)).toBe(true)
|
|
96
|
+
expect(isNativeEditingTarget(editable)).toBe(true)
|
|
97
|
+
expect(isNativeEditingTarget(document.createElement('button'))).toBe(false)
|
|
98
|
+
})
|
|
99
|
+
})
|
|
@@ -99,6 +99,33 @@ describe('EditorTopBar review chrome', () => {
|
|
|
99
99
|
render(<EditorTopBar {...baseProps} reviewNote="Need a stronger lede." />)
|
|
100
100
|
expect(screen.getByText('Reviewer note: Need a stronger lede.')).toBeTruthy()
|
|
101
101
|
})
|
|
102
|
+
|
|
103
|
+
it('undo and redo follow the section stack and stay quiet until there is a step', () => {
|
|
104
|
+
const onUndo = vi.fn()
|
|
105
|
+
const onRedo = vi.fn()
|
|
106
|
+
const { rerender } = render(
|
|
107
|
+
<EditorTopBar
|
|
108
|
+
{...baseProps}
|
|
109
|
+
onUndo={onUndo}
|
|
110
|
+
onRedo={onRedo}
|
|
111
|
+
canUndo={false}
|
|
112
|
+
canRedo={false}
|
|
113
|
+
/>,
|
|
114
|
+
)
|
|
115
|
+
const undo = screen.getByRole('button', { name: 'Undo' }) as HTMLButtonElement
|
|
116
|
+
const redo = screen.getByRole('button', { name: 'Redo' }) as HTMLButtonElement
|
|
117
|
+
expect(undo.disabled).toBe(true)
|
|
118
|
+
expect(redo.disabled).toBe(true)
|
|
119
|
+
expect(undo.getAttribute('title')).toContain('Ctrl+Z')
|
|
120
|
+
fireEvent.click(undo)
|
|
121
|
+
expect(onUndo).not.toHaveBeenCalled()
|
|
122
|
+
|
|
123
|
+
rerender(<EditorTopBar {...baseProps} onUndo={onUndo} onRedo={onRedo} canUndo canRedo />)
|
|
124
|
+
fireEvent.click(screen.getByRole('button', { name: 'Undo' }))
|
|
125
|
+
fireEvent.click(screen.getByRole('button', { name: 'Redo' }))
|
|
126
|
+
expect(onUndo).toHaveBeenCalledOnce()
|
|
127
|
+
expect(onRedo).toHaveBeenCalledOnce()
|
|
128
|
+
})
|
|
102
129
|
})
|
|
103
130
|
|
|
104
131
|
describe('EditorTopBar view site / share', () => {
|
|
@@ -211,6 +211,36 @@ describe('PostSectionEditor section disclosure', () => {
|
|
|
211
211
|
fireEvent.click(screen.getByRole('button', { name: 'Close Quote' }))
|
|
212
212
|
await waitFor(() => expect(screen.queryByRole('button', { name: 'Close Quote' })).toBeNull())
|
|
213
213
|
})
|
|
214
|
+
|
|
215
|
+
it('undo puts a hidden section back', async () => {
|
|
216
|
+
fetchTemplateForEditor.mockRejectedValue(new Error('no template'))
|
|
217
|
+
fetchPostForEditor.mockResolvedValue(
|
|
218
|
+
loadedPost([{ id: 's1', sectionType: 'quote', name: 'Quote' }]),
|
|
219
|
+
)
|
|
220
|
+
render(
|
|
221
|
+
<PostSectionEditor
|
|
222
|
+
postType="blog"
|
|
223
|
+
documentId="p1"
|
|
224
|
+
config={validConfig}
|
|
225
|
+
onNavigate={() => {}}
|
|
226
|
+
session={{ user: { role: 'EDITOR' } }}
|
|
227
|
+
/>,
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
const hide = await screen.findByRole('button', { name: 'Hide Quote' })
|
|
231
|
+
fireEvent.click(hide)
|
|
232
|
+
await screen.findByRole('button', { name: 'Show Quote' })
|
|
233
|
+
|
|
234
|
+
const undo = screen.getByRole('button', { name: 'Undo' }) as HTMLButtonElement
|
|
235
|
+
await waitFor(() => expect(undo.disabled).toBe(false))
|
|
236
|
+
fireEvent.click(undo)
|
|
237
|
+
await screen.findByRole('button', { name: 'Hide Quote' })
|
|
238
|
+
|
|
239
|
+
const redo = screen.getByRole('button', { name: 'Redo' }) as HTMLButtonElement
|
|
240
|
+
await waitFor(() => expect(redo.disabled).toBe(false))
|
|
241
|
+
fireEvent.click(redo)
|
|
242
|
+
await screen.findByRole('button', { name: 'Show Quote' })
|
|
243
|
+
})
|
|
214
244
|
})
|
|
215
245
|
|
|
216
246
|
describe('PostSectionEditor Share', () => {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from 'react'
|
|
4
|
+
import {
|
|
5
|
+
createEditorHistory,
|
|
6
|
+
isNativeEditingTarget,
|
|
7
|
+
pushEditorHistory,
|
|
8
|
+
redoEditorHistory,
|
|
9
|
+
undoEditorHistory,
|
|
10
|
+
} from '../lib/editor-history.js'
|
|
11
|
+
|
|
12
|
+
function cloneSnapshot<T>(value: T): T {
|
|
13
|
+
return JSON.parse(JSON.stringify(value)) as T
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Snapshot stack for the section editor. `note` records the document from
|
|
18
|
+
* before a change and is safe to call inside a state updater (it only writes
|
|
19
|
+
* a ref). The stack commits after that render. Rapid notes with the same key
|
|
20
|
+
* collapse into one step.
|
|
21
|
+
*/
|
|
22
|
+
export function useEditorHistory<T>(current: T | null, resetKey: string | null) {
|
|
23
|
+
const historyRef = useRef(createEditorHistory<T>())
|
|
24
|
+
const pendingRef = useRef<Array<{ snapshot: T; key: string; coalesce: boolean }>>([])
|
|
25
|
+
const [, setRevision] = useState(0)
|
|
26
|
+
|
|
27
|
+
const note = useCallback((snapshot: T, key: string, coalesce = false) => {
|
|
28
|
+
pendingRef.current.push({ snapshot: cloneSnapshot(snapshot), key, coalesce })
|
|
29
|
+
}, [])
|
|
30
|
+
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
historyRef.current = createEditorHistory()
|
|
33
|
+
pendingRef.current = []
|
|
34
|
+
setRevision((n) => n + 1)
|
|
35
|
+
}, [resetKey])
|
|
36
|
+
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (pendingRef.current.length === 0) return
|
|
39
|
+
const now = Date.now()
|
|
40
|
+
let next = historyRef.current
|
|
41
|
+
for (const item of pendingRef.current) {
|
|
42
|
+
next = pushEditorHistory(next, item.snapshot, {
|
|
43
|
+
key: item.key,
|
|
44
|
+
now,
|
|
45
|
+
coalesce: item.coalesce,
|
|
46
|
+
})
|
|
47
|
+
}
|
|
48
|
+
pendingRef.current = []
|
|
49
|
+
historyRef.current = next
|
|
50
|
+
setRevision((n) => n + 1)
|
|
51
|
+
}, [current])
|
|
52
|
+
|
|
53
|
+
const undo = useCallback((): T | null => {
|
|
54
|
+
if (current == null) return null
|
|
55
|
+
const result = undoEditorHistory(historyRef.current, cloneSnapshot(current))
|
|
56
|
+
if (!result) return null
|
|
57
|
+
historyRef.current = result.history
|
|
58
|
+
setRevision((n) => n + 1)
|
|
59
|
+
return result.value
|
|
60
|
+
}, [current])
|
|
61
|
+
|
|
62
|
+
const redo = useCallback((): T | null => {
|
|
63
|
+
if (current == null) return null
|
|
64
|
+
const result = redoEditorHistory(historyRef.current, cloneSnapshot(current))
|
|
65
|
+
if (!result) return null
|
|
66
|
+
historyRef.current = result.history
|
|
67
|
+
setRevision((n) => n + 1)
|
|
68
|
+
return result.value
|
|
69
|
+
}, [current])
|
|
70
|
+
|
|
71
|
+
return {
|
|
72
|
+
note,
|
|
73
|
+
undo,
|
|
74
|
+
redo,
|
|
75
|
+
canUndo: historyRef.current.past.length > 0,
|
|
76
|
+
canRedo: historyRef.current.future.length > 0,
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function useSectionEditorShortcuts(input: {
|
|
81
|
+
enabled: boolean
|
|
82
|
+
onUndo: () => void
|
|
83
|
+
onRedo: () => void
|
|
84
|
+
}) {
|
|
85
|
+
const { enabled, onUndo, onRedo } = input
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
if (!enabled) return
|
|
88
|
+
function onKey(event: KeyboardEvent) {
|
|
89
|
+
if (isNativeEditingTarget(event.target)) return
|
|
90
|
+
if (!(event.metaKey || event.ctrlKey) || event.altKey) return
|
|
91
|
+
const key = event.key.toLowerCase()
|
|
92
|
+
const redoKey = key === 'y' || (key === 'z' && event.shiftKey)
|
|
93
|
+
const undoKey = key === 'z' && !event.shiftKey
|
|
94
|
+
if (!undoKey && !redoKey) return
|
|
95
|
+
event.preventDefault()
|
|
96
|
+
if (redoKey) onRedo()
|
|
97
|
+
else onUndo()
|
|
98
|
+
}
|
|
99
|
+
document.addEventListener('keydown', onKey)
|
|
100
|
+
return () => document.removeEventListener('keydown', onKey)
|
|
101
|
+
}, [enabled, onUndo, onRedo])
|
|
102
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Shown in the keyboard-shortcuts dialog (⌘ /). */
|
|
2
|
+
export const ADMIN_KEYBOARD_SHORTCUTS: ReadonlyArray<{ keys: string; label: string }> = [
|
|
3
|
+
{ keys: '⌘ K', label: 'Open search' },
|
|
4
|
+
{ keys: '⌘ S', label: 'Save document' },
|
|
5
|
+
{ keys: '⌘ Z', label: 'Undo in the section editor' },
|
|
6
|
+
{ keys: '⌘ ⇧ Z', label: 'Redo in the section editor' },
|
|
7
|
+
{ keys: '⌘ Y', label: 'Redo in the section editor' },
|
|
8
|
+
{ keys: '⌘ /', label: 'Toggle this help' },
|
|
9
|
+
{ keys: 'Esc', label: 'Close panel / modal' },
|
|
10
|
+
]
|