From e27acc460c629e384438d0720de3c75931e8d5ac Mon Sep 17 00:00:00 2001 From: yjh <39440537+yjhtry@users.noreply.github.com> Date: Wed, 5 Apr 2023 01:09:28 +0800 Subject: [PATCH] fix get text selectRect error (#4263) Co-authored-by: Gerard Rovira --- packages/lexical/src/LexicalSelection.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/lexical/src/LexicalSelection.ts b/packages/lexical/src/LexicalSelection.ts index af7ef3257f4..8b9c96bd462 100644 --- a/packages/lexical/src/LexicalSelection.ts +++ b/packages/lexical/src/LexicalSelection.ts @@ -3085,8 +3085,14 @@ export function updateDOMSelection( ? domSelection.getRangeAt(0) : null; if (selectionTarget !== null) { - // @ts-ignore Text nodes do have getBoundingClientRect - const selectionRect = selectionTarget.getBoundingClientRect(); + let selectionRect: DOMRect; + if (selectionTarget instanceof Text) { + const range = document.createRange(); + range.selectNode(selectionTarget); + selectionRect = range.getBoundingClientRect(); + } else { + selectionRect = selectionTarget.getBoundingClientRect(); + } scrollIntoViewIfNeeded(editor, selectionRect, rootElement); } }