node deletion

This commit is contained in:
Philipinho
2026-01-31 22:15:16 +00:00
parent 129e21f728
commit b2b147f1bd
2 changed files with 11 additions and 11 deletions
@@ -40,11 +40,9 @@
} }
:global(.history-diff-node-deleted) { :global(.history-diff-node-deleted) {
display: inline-block; display: block;
background: light-dark(var(--mantine-color-red-0), rgba(255, 0, 0, 0.1)); opacity: 0.5;
border: rem(1px) dashed light-dark(var(--mantine-color-red-4), var(--mantine-color-red-6)); outline: rem(2px) dashed light-dark(var(--mantine-color-red-4), var(--mantine-color-red-6));
outline-offset: rem(2px);
border-radius: rem(4px); border-radius: rem(4px);
padding: rem(4px) rem(8px);
color: light-dark(var(--mantine-color-red-7), var(--mantine-color-red-4));
font-size: rem(12px);
} }
@@ -7,7 +7,7 @@ import { Decoration, DecorationSet } from "@tiptap/pm/view";
import classes from "./history-diff.module.css"; import classes from "./history-diff.module.css";
import historyClasses from "./history.module.css"; import historyClasses from "./history.module.css";
import { recreateTransform } from "@docmost/editor-ext"; import { recreateTransform } from "@docmost/editor-ext";
import { Node } from "@tiptap/pm/model"; import { DOMSerializer, Node } from "@tiptap/pm/model";
import { ChangeSet, simplifyChanges } from "prosemirror-changeset"; import { ChangeSet, simplifyChanges } from "prosemirror-changeset";
export interface HistoryEditorProps { export interface HistoryEditorProps {
@@ -126,10 +126,12 @@ export function HistoryEditor({
if (foundDeletedNode) { if (foundDeletedNode) {
decorations.push( decorations.push(
Decoration.widget(change.fromB, () => { Decoration.widget(change.fromB, () => {
const span = document.createElement("span"); const wrapper = document.createElement("div");
span.className = "history-diff-node-deleted"; wrapper.className = "history-diff-node-deleted";
span.textContent = `[${foundDeletedNode!.node.type.name} removed]`; const serializer = DOMSerializer.fromSchema(schema);
return span; const dom = serializer.serializeNode(foundDeletedNode!.node);
wrapper.appendChild(dom);
return wrapper;
}), }),
); );
} else { } else {