diff --git a/assets/js/hooks/events/handler.ts b/assets/js/hooks/events/handler.ts index 7795656e..a512160e 100644 --- a/assets/js/hooks/events/handler.ts +++ b/assets/js/hooks/events/handler.ts @@ -58,7 +58,7 @@ export function handleContentChange({ node }: { node: Node }) { } const input = item.firstChild!; - input.textContent = node.content; + input.textContent = node.content || ""; setItemDirty(item, false); } diff --git a/assets/js/hooks/events/listener.ts b/assets/js/hooks/events/listener.ts index e2632ef4..307235c2 100644 --- a/assets/js/hooks/events/listener.ts +++ b/assets/js/hooks/events/listener.ts @@ -54,7 +54,7 @@ export function keydown(event: KeyboardEvent) { break; case "ArrowDown": - if (selection?.anchorOffset != node.content.length) return; + if (selection?.anchorOffset != node.content?.length) return; event.preventDefault(); if (!nextItem || !nextNode) return; @@ -98,7 +98,7 @@ export function keydown(event: KeyboardEvent) { if (!prevItem || !prevNode) return; - prevNode.content += node.content; + prevNode.content += node.content || ""; updateItem(prevNode, container); focusItem(prevItem); prevNode.dirty = true; @@ -110,12 +110,12 @@ export function keydown(event: KeyboardEvent) { break; case "Delete": - if (selection?.anchorOffset != node.content.length) return; + if (selection?.anchorOffset != node.content?.length) return; event.preventDefault(); if (!nextItem || !nextNode) return; - node.content += nextNode.content; + node.content += nextNode.content || ""; updateItem(node, container); focusItem(item); node.dirty = true; diff --git a/assets/js/hooks/item.ts b/assets/js/hooks/item.ts index 1b192086..d1c74311 100644 --- a/assets/js/hooks/item.ts +++ b/assets/js/hooks/item.ts @@ -2,7 +2,7 @@ import { Node } from "./types"; export function createItem({ uuid, content, parent_id, prev_id, dirty }: Node) { const input = document.createElement("div"); - input.textContent = content; + input.textContent = content || ""; input.contentEditable = "true"; // firefox does not support "plaintext-only" const ol = document.createElement("ol"); @@ -31,7 +31,7 @@ export function updateItem( if (!item) return; const input = item.firstChild!; - input.textContent = content; + input.textContent = content || ""; item.className = dirty ? "my-1 ml-4 bg-red-100" : "my-1 ml-4";