fix(composer): Escape closes the emoji and sticker boards (#304) #386

Merged
jared merged 1 commits from fix/emoji-board-escape into lotus 2026-10-18 00:27:07 -04:00
Owner

Fixes #304.

The emoji/sticker board opens with focus in its Search field. Its FocusTrap used the shared stopPropagation helper as escapeDeactivates, and that helper returns false while an input is focused. So Escape never closed the board, in any browser.

Change: this trap always closes on Escape. It still calls stopPropagation(), so the key doesn't also close the room or a modal underneath. The GIF picker uses focus-trap's default and already closed on Escape.

Verified (Chromium, composer in a room):

  • Before: Insert emoji: focus = Search input, openAfterEscape=true. Insert sticker: the same.
  • After: emoji openAfterEscape=false, sticker openAfterEscape=false, and the room stays open.

tsc clean · ESLint clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5

Fixes #304. The emoji/sticker board opens with focus in its **Search** field. Its FocusTrap used the shared `stopPropagation` helper as `escapeDeactivates`, and that helper returns `false` while an input is focused. So Escape never closed the board, in any browser. **Change:** this trap always closes on Escape. It still calls `stopPropagation()`, so the key doesn't also close the room or a modal underneath. The GIF picker uses focus-trap's default and already closed on Escape. **Verified** (Chromium, composer in a room): - **Before:** Insert emoji: focus = Search input, `openAfterEscape=true`. Insert sticker: the same. - **After:** emoji `openAfterEscape=false`, sticker `openAfterEscape=false`, and the room stays open. `tsc` clean · ESLint clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared added 1 commit 2026-10-17 20:06:45 -04:00
fix(composer): Escape closes the emoji and sticker boards (#304)
CI / Build & Quality Checks (pull_request) Successful in 2m46s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 13s
CI / Playwright smoke (e2e) (pull_request) Successful in 15m19s
f7bdd2855a
The board opens with focus in its search field, and its FocusTrap used
the shared stopPropagation helper, which ignores Escape while an input
is focused, so Escape never closed it (Chromium, Firefox, WebKit).
Always close on Escape here, still stopping the key from closing the
room or modal underneath. The GIF picker already uses the default.

Fixes #304

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
jared merged commit 83933fb5ac into lotus 2026-10-18 00:27:07 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#386