From c91e3c25542ec8d622d612bdadf0ac9b1e1eabb2 Mon Sep 17 00:00:00 2001
From: Alexander Onnikov <aonnikov@hardcoreeng.com>
Date: Fri, 22 Nov 2024 20:58:34 +0700
Subject: [PATCH] EZQMS-1232 Fix todo items selection (#7225)

Signed-off-by: Alexander Onnikov <Alexander.Onnikov@xored.com>
---
 .../src/components/node-view/svelte-node-view-renderer.ts  | 7 ++++++-
 plugins/time-resources/src/utils.ts                        | 5 ++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/plugins/text-editor-resources/src/components/node-view/svelte-node-view-renderer.ts b/plugins/text-editor-resources/src/components/node-view/svelte-node-view-renderer.ts
index 78e0794945..0d96457a9d 100644
--- a/plugins/text-editor-resources/src/components/node-view/svelte-node-view-renderer.ts
+++ b/plugins/text-editor-resources/src/components/node-view/svelte-node-view-renderer.ts
@@ -150,8 +150,13 @@ class SvelteNodeView extends NodeView<SvelteNodeViewComponent, Editor, SvelteNod
 
   handleSelectionUpdate (): void {
     const { from, to } = this.editor.state.selection
+    const pos = this.getPos()
 
-    if (from <= this.getPos() && to >= this.getPos() + this.node.nodeSize) {
+    if (typeof pos !== 'number') {
+      return
+    }
+
+    if (from <= pos && to >= pos + this.node.nodeSize) {
       if (this.renderer.props.selected === true) {
         return
       }
diff --git a/plugins/time-resources/src/utils.ts b/plugins/time-resources/src/utils.ts
index 568f4bfc66..d756e5bfe5 100644
--- a/plugins/time-resources/src/utils.ts
+++ b/plugins/time-resources/src/utils.ts
@@ -72,8 +72,7 @@ export function createTodoItemExtension (mode: TextEditorMode, ctx: any): AnyExt
       return SvelteNodeViewRenderer(ToDoItemNodeView, {
         contentAs: 'li',
         contentClass: 'todo-item',
-        componentProps: { objectId, objectClass, objectSpace },
-        ignoreMutation: () => true
+        componentProps: { objectId, objectClass, objectSpace }
       })
     }
   }).configure({
@@ -90,7 +89,7 @@ export function createTodoListExtension (mode: TextEditorMode, ctx: any): AnyExt
 
   return TodoListExtension.extend({
     addNodeView () {
-      return SvelteNodeViewRenderer(ToDoListNodeView, { ignoreMutation: () => true })
+      return SvelteNodeViewRenderer(ToDoListNodeView, {})
     }
   }).configure({
     HTMLAttributes: {