9fdc6160eb
CI / Build & Quality Checks (push) Successful in 10m24s
Emoji bug root cause: EmojiBoard wraps itself in a FocusTrap with clickOutsideDeactivates:true. When the picker was rendered inside Input's 'after' prop, the FocusTrap treated clicks on the emoji items as outside-clicks and deactivated (calling requestClose) before the onEmojiSelect callback fired. Fixed by moving the emoji PopOut to be a direct sibling of Input in the form row instead of nesting it inside Input.after — matching the established pattern used in MessageEditor. 429 rate-limit: mx.setPresence() calls in handleClear and the auto-clear timer effect had no rejection handling, causing unhandled promise rejections logged to Sentry when Synapse rate-limits presence updates. Added .catch(() => undefined) to both call sites. Sentry issue JAVASCRIPT-REACT-E resolved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>