From f34060c4e09968cf33d23fd852cb57ff50bfc849 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 20 Nov 2023 08:15:46 +0500 Subject: [PATCH] editor: fix task list title getting reset --- packages/editor/src/extensions/task-list/component.tsx | 2 ++ packages/editor/src/extensions/task-list/task-list.ts | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/editor/src/extensions/task-list/component.tsx b/packages/editor/src/extensions/task-list/component.tsx index 390078a2e..b9a7ee798 100644 --- a/packages/editor/src/extensions/task-list/component.tsx +++ b/packages/editor/src/extensions/task-list/component.tsx @@ -111,12 +111,14 @@ export function TaskListComponent( if (!node) return false; const toggleState = !node.attrs.readonly; tr.setNodeMarkup(tr.mapping.map(parentPos), null, { + ...node.attrs, readonly: toggleState }); node.descendants((node, pos) => { if (node.type.name === TaskList.name) { const actualPos = pos + parentPos + 1; tr.setNodeMarkup(tr.mapping.map(actualPos), null, { + ...node.attrs, readonly: toggleState }); } diff --git a/packages/editor/src/extensions/task-list/task-list.ts b/packages/editor/src/extensions/task-list/task-list.ts index 9c61f3f73..9a00efa38 100644 --- a/packages/editor/src/extensions/task-list/task-list.ts +++ b/packages/editor/src/extensions/task-list/task-list.ts @@ -238,6 +238,7 @@ export const TaskListNode = TaskList.extend({ tr.doc.descendants((node, pos) => { if (node.type.name === TaskList.name) { tr.setNodeMarkup(pos, undefined, { + ...node.attrs, stats: countCheckedItems(node) }); return false; @@ -304,6 +305,7 @@ export const TaskListNode = TaskList.extend({ changeCount++; tr.setNodeMarkup(tr.mapping.map(parentTaskItem.pos), undefined, { + ...parentTaskItem.node.attrs, checked: allChecked }); childPos = parentTaskItem.pos; @@ -318,7 +320,10 @@ export const TaskListNode = TaskList.extend({ roots.add(root); const stats = countCheckedItems(root.node); - tr.setNodeMarkup(root.pos, undefined, { stats }); + tr.setNodeMarkup(root.pos, undefined, { + ...root.node.attrs, + stats + }); changeCount++; } }