diff --git a/src/components/middle/composer/MessageInput.tsx b/src/components/middle/composer/MessageInput.tsx index 1161df35d..f5775388c 100644 --- a/src/components/middle/composer/MessageInput.tsx +++ b/src/components/middle/composer/MessageInput.tsx @@ -248,19 +248,19 @@ const MessageInput: FC = ({ const selectionRange = window.getSelection()!.getRangeAt(0); const selectionRect = selectionRange.getBoundingClientRect(); - const inputRect = inputRef.current!.getBoundingClientRect(); + const scrollerRect = inputRef.current!.closest(`.${SCROLLER_CLASS}`)!.getBoundingClientRect(); - let x = (selectionRect.left + selectionRect.width / 2) - inputRect.left; + let x = (selectionRect.left + selectionRect.width / 2) - scrollerRect.left; if (x < TEXT_FORMATTER_SAFE_AREA_PX) { x = TEXT_FORMATTER_SAFE_AREA_PX; - } else if (x > inputRect.width - TEXT_FORMATTER_SAFE_AREA_PX) { - x = inputRect.width - TEXT_FORMATTER_SAFE_AREA_PX; + } else if (x > scrollerRect.width - TEXT_FORMATTER_SAFE_AREA_PX) { + x = scrollerRect.width - TEXT_FORMATTER_SAFE_AREA_PX; } setTextFormatterAnchorPosition({ x, - y: selectionRect.top - inputRect.top, + y: selectionRect.top - scrollerRect.top, }); setSelectedRange(selectionRange);