From ade317d26b312ba0f1f8ceba8d5eab350e51e6cd Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Mon, 30 Dec 2024 14:44:11 +0000 Subject: [PATCH] fix(editor): caret can be null in firefox (#9438) Fix: https://toeverything.sentry.io/issues/6185588184/events/b205b6caf0224b51882c1d10bb3dd9bc/ --- blocksuite/affine/shared/src/utils/dom/point-to-range.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/blocksuite/affine/shared/src/utils/dom/point-to-range.ts b/blocksuite/affine/shared/src/utils/dom/point-to-range.ts index 98ea0ecc5..9d842f815 100644 --- a/blocksuite/affine/shared/src/utils/dom/point-to-range.ts +++ b/blocksuite/affine/shared/src/utils/dom/point-to-range.ts @@ -9,7 +9,7 @@ declare global { ): { offsetNode: Node; offset: number; - }; + } | null; } } @@ -23,6 +23,9 @@ export function caretRangeFromPoint( ): Range | null { if (IS_FIREFOX) { const caret = document.caretPositionFromPoint(clientX, clientY); + if (!caret) { + return null; + } // TODO handle caret is covered by popup const range = document.createRange(); range.setStart(caret.offsetNode, caret.offset);