diff options
author | Hailey <153161762+haileyok@users.noreply.github.com> | 2024-01-02 12:16:28 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-02 12:16:28 -0800 |
commit | c1dc0b7ee0f15134578d50a3d344ab4bdad1119f (patch) | |
tree | a8dd56018c9efe4c9a17e7bab4c6d0624b38fb41 /src/view/shell/Composer.web.tsx | |
parent | e460b304fc2ce05be48567579647c969e46ed116 (diff) | |
download | voidsky-c1dc0b7ee0f15134578d50a3d344ab4bdad1119f.tar.zst |
emoji picker improvements (#2392)
* rework emoji picker * dynamic position * always prefer the left if it will fit * add accessibility label * Update EmojiPicker.web.tsx oops. remove accessibility from fake button
Diffstat (limited to 'src/view/shell/Composer.web.tsx')
-rw-r--r-- | src/view/shell/Composer.web.tsx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/view/shell/Composer.web.tsx b/src/view/shell/Composer.web.tsx index 73f9f540e..ed64bc799 100644 --- a/src/view/shell/Composer.web.tsx +++ b/src/view/shell/Composer.web.tsx @@ -5,6 +5,10 @@ import {ComposePost} from '../com/composer/Composer' import {useComposerState} from 'state/shell/composer' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import { + EmojiPicker, + EmojiPickerState, +} from 'view/com/composer/text-input/web/EmojiPicker.web.tsx' const BOTTOM_BAR_HEIGHT = 61 @@ -13,6 +17,26 @@ export function Composer({}: {winHeight: number}) { const {isMobile} = useWebMediaQueries() const state = useComposerState() + const [pickerState, setPickerState] = React.useState<EmojiPickerState>({ + isOpen: false, + pos: {top: 0, left: 0, right: 0, bottom: 0}, + }) + + const onOpenPicker = React.useCallback((pos: DOMRect | undefined) => { + if (!pos) return + setPickerState({ + isOpen: true, + pos, + }) + }, []) + + const onClosePicker = React.useCallback(() => { + setPickerState(prev => ({ + ...prev, + isOpen: false, + })) + }, []) + // rendering // = @@ -41,8 +65,10 @@ export function Composer({}: {winHeight: number}) { quote={state.quote} onPost={state.onPost} mention={state.mention} + openPicker={onOpenPicker} /> </Animated.View> + <EmojiPicker state={pickerState} close={onClosePicker} /> </Animated.View> ) } |