From e09459c7d293fe60ccd166acf00d12f75e31a0c1 Mon Sep 17 00:00:00 2001 From: Evie Gauthier Date: Mon, 11 May 2026 12:39:01 -0400 Subject: [PATCH 1/2] fix(emoji-board): skip displayCheck on FocusTrap activation FocusTrap's default displayCheck:'full' calls getComputedStyle() on every tabbable element when the board opens. With hundreds of emoji buttons in the visible groups this causes a multi-hundred ms freeze. Using displayCheck:'none' skips that DOM traversal entirely while preserving all keyboard-navigation and focus-trap behaviour. --- src/app/components/emoji-board/EmojiBoard.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index d209b2d0a..1b059ed45 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -545,6 +545,7 @@ export function EmojiBoard({ isKeyBackward: (evt: KeyboardEvent) => !editableActiveElement() && isKeyHotkey(['arrowup', 'arrowleft'], evt), escapeDeactivates: stopPropagation, + tabbableOptions: { displayCheck: 'none' }, }} > Date: Tue, 19 May 2026 14:25:17 -0400 Subject: [PATCH 2/2] chore: add changeset --- .changeset/emoji-board-focustrap.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/emoji-board-focustrap.md diff --git a/.changeset/emoji-board-focustrap.md b/.changeset/emoji-board-focustrap.md new file mode 100644 index 000000000..fa6d55dc7 --- /dev/null +++ b/.changeset/emoji-board-focustrap.md @@ -0,0 +1,5 @@ +--- +default: patch +--- + +Skip displayCheck on FocusTrap activation in the emoji board to prevent focus trap errors.