From 0648faec67ebb10dab56b82a81303d421ed4775f Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Mon, 31 Mar 2025 17:08:27 +0200 Subject: [PATCH 1/3] fix: check if relatedTarget exists first Resolves: https://blocknote-js.sentry.io/issues/33990038/?environment=vercel-production&query=is%3Aunresolved%20issue.priority%3A%5Bhigh%2C%20medium%5D&referrer=issue-stream&stream_index=23 --- packages/react/src/components/Comments/ThreadsSidebar.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react/src/components/Comments/ThreadsSidebar.tsx b/packages/react/src/components/Comments/ThreadsSidebar.tsx index 443ebbf0e4..5f6ba726d2 100644 --- a/packages/react/src/components/Comments/ThreadsSidebar.tsx +++ b/packages/react/src/components/Comments/ThreadsSidebar.tsx @@ -44,7 +44,8 @@ const ThreadItem = React.memo( // If the focused element is within the action toolbar, we don't want to // blur the thread for UX reasons. if ( - (event.relatedTarget as HTMLElement).closest(".bn-action-toolbar") + !event.relatedTarget || + event.relatedTarget.closest(".bn-action-toolbar") ) { return; } From 637f940fe547da75f4de17e9c46c1022dd8b92a6 Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Mon, 31 Mar 2025 17:09:19 +0200 Subject: [PATCH 2/3] fix: early exit if html ends up being empty Resolves: https://blocknote-js.sentry.io/issues/32467184 --- packages/core/src/editor/BlockNoteEditor.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/core/src/editor/BlockNoteEditor.ts b/packages/core/src/editor/BlockNoteEditor.ts index b1caec71b0..aa8ffea6e3 100644 --- a/packages/core/src/editor/BlockNoteEditor.ts +++ b/packages/core/src/editor/BlockNoteEditor.ts @@ -1502,6 +1502,9 @@ export class BlockNoteEditor< if (!raw) { htmlToPaste = this.convertHtmlToBlockNoteHtml(html); } + if (!htmlToPaste) { + return; + } this.prosemirrorView?.pasteHTML(htmlToPaste); } From dec845e25e3311fbc37a6d4ef940a5395b1b8b4e Mon Sep 17 00:00:00 2001 From: Nick the Sick Date: Mon, 31 Mar 2025 17:12:05 +0200 Subject: [PATCH 3/3] fix: only set state if it exists Resolves: https://blocknote-js.sentry.io/issues/32235378/ --- .../core/src/extensions/SuggestionMenu/SuggestionPlugin.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts b/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts index 6564a1993b..c21a8ddb5e 100644 --- a/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts +++ b/packages/core/src/extensions/SuggestionMenu/SuggestionPlugin.ts @@ -86,7 +86,9 @@ class SuggestionMenuView< this.pluginState = stopped ? prev : next; if (stopped || !this.editor.isEditable) { - this.state!.show = false; + if (this.state) { + this.state.show = false; + } this.emitUpdate(this.pluginState!.triggerCharacter); return;