diff options
author | Eric Bailey <git@esb.lol> | 2024-12-20 13:59:33 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-20 19:59:33 +0000 |
commit | 8116d12c15495fa192e92f5bfb75cb561bb16402 (patch) | |
tree | d8291bc888d6423ccb7f242877c9293283156e83 /src/view/com/composer/Composer.tsx | |
parent | 8a3dfcb9d0860eb8f8112a84dcf32ae522f77069 (diff) | |
download | voidsky-8116d12c15495fa192e92f5bfb75cb561bb16402.tar.zst |
Fix Emoji picker focus (#7217)
* Only portal the emoji picker where needed * Add optional portal prop to emoji picker * Use FocusScope to our advantage * Pare back, add guards, fix focus trap * Don't return focus to emoji button * Set DM input position on emoji insert * Let the caller determine next focus node --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'src/view/com/composer/Composer.tsx')
-rw-r--r-- | src/view/com/composer/Composer.tsx | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index e4b09cf0f..c9e40530e 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -530,7 +530,14 @@ export const ComposePost = ({ } const onEmojiButtonPress = useCallback(() => { - openEmojiPicker?.(textInput.current?.getCursorPosition()) + const rect = textInput.current?.getCursorPosition() + if (rect) { + openEmojiPicker?.({ + ...rect, + nextFocusRef: + textInput as unknown as React.MutableRefObject<HTMLElement>, + }) + } }, [openEmojiPicker]) const scrollViewRef = useAnimatedRef<Animated.ScrollView>() |