From e6b297da749db58f002e657044fa427499341c6a Mon Sep 17 00:00:00 2001 From: Jamie <113370520+jamiebuilds-signal@users.noreply.github.com> Date: Thu, 13 Nov 2025 11:01:43 -0800 Subject: [PATCH] Fix emoji picker closing when using pen/touch --- ts/components/fun/panels/FunPanelEmojis.dom.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ts/components/fun/panels/FunPanelEmojis.dom.tsx b/ts/components/fun/panels/FunPanelEmojis.dom.tsx index ce8c324b21..949e861b85 100644 --- a/ts/components/fun/panels/FunPanelEmojis.dom.tsx +++ b/ts/components/fun/panels/FunPanelEmojis.dom.tsx @@ -160,6 +160,12 @@ function getSelectedSection( return EmojiPickerCategory.SmileysAndPeople; } +function isKeyboardPointerEvent(event: PointerEvent): boolean { + // "" means input source could not be determined (not mouse, pen, or touch) + // https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType + return event.nativeEvent.pointerType === ''; +} + export type FunEmojiSelection = Readonly<{ variantKey: EmojiVariantKey; }>; @@ -664,8 +670,7 @@ const Cell = memo(function Cell(props: CellProps): JSX.Element { variantKey: emojiVariant.key, }; const shouldClose = - event.nativeEvent.pointerType !== 'mouse' && - !(event.ctrlKey || event.metaKey); + isKeyboardPointerEvent(event) && !(event.ctrlKey || event.metaKey); onSelectEmoji(emojiSelection, shouldClose); }, [