diff --git a/.changeset/fix-focus-capture-reply.md b/.changeset/fix-focus-capture-reply.md new file mode 100644 index 000000000..30b559f9c --- /dev/null +++ b/.changeset/fix-focus-capture-reply.md @@ -0,0 +1,5 @@ +--- +default: patch +--- + +Fix reply button not capturing editor focus. diff --git a/src/app/features/room/RoomInput.tsx b/src/app/features/room/RoomInput.tsx index 70eca4dc2..bc30145c8 100644 --- a/src/app/features/room/RoomInput.tsx +++ b/src/app/features/room/RoomInput.tsx @@ -419,6 +419,24 @@ export const RoomInput = forwardRef( } }, [mentionInReplies, mx, replyDraft]); + const prevReplyEventId = useRef(replyDraft?.eventId); + useEffect(() => { + if (replyDraft?.eventId !== prevReplyEventId.current) { + prevReplyEventId.current = replyDraft?.eventId; + + if (replyDraft?.eventId) { + requestAnimationFrame(() => { + try { + ReactEditor.focus(editor); + moveCursor(editor); + } catch { + // Ignore focus errors + } + }); + } + } + }, [replyDraft?.eventId, editor]); + const handleFileMetadata = useCallback( (fileItem: TUploadItem, metadata: TUploadMetadata) => { setSelectedFiles({