From e09459c7d293fe60ccd166acf00d12f75e31a0c1 Mon Sep 17 00:00:00 2001 From: Evie Gauthier Date: Mon, 11 May 2026 12:39:01 -0400 Subject: [PATCH] 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' }, }} >