diff options
author | Eric Bailey <git@esb.lol> | 2024-09-06 17:58:47 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-06 15:58:47 -0700 |
commit | 543be176741bfcc6c093143799376972818908c4 (patch) | |
tree | fe329e9bbc0a784973e74f3af22868e1b68e0f48 /src/screens/Messages/Conversation/MessagesList.tsx | |
parent | 30d2ab8dd3ef793f235489910564cf46e8e6a860 (diff) | |
download | voidsky-543be176741bfcc6c093143799376972818908c4.tar.zst |
Add emoji picker to chat composer (#5196)
Co-authored-by: surfdude29 <149612116+surfdude29@users.noreply.github.com> Co-authored-by: Adrov Igor <nucleartux@gmail.com>
Diffstat (limited to 'src/screens/Messages/Conversation/MessagesList.tsx')
-rw-r--r-- | src/screens/Messages/Conversation/MessagesList.tsx | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/screens/Messages/Conversation/MessagesList.tsx b/src/screens/Messages/Conversation/MessagesList.tsx index c0e78e978..3034f0290 100644 --- a/src/screens/Messages/Conversation/MessagesList.tsx +++ b/src/screens/Messages/Conversation/MessagesList.tsx @@ -29,6 +29,10 @@ import {useAgent} from '#/state/session' import {clamp} from 'lib/numbers' import {ScrollProvider} from 'lib/ScrollContext' import {isWeb} from 'platform/detection' +import { + EmojiPicker, + EmojiPickerState, +} from '#/view/com/composer/text-input/web/EmojiPicker.web' import {List} from 'view/com/util/List' import {ChatDisabled} from '#/screens/Messages/Conversation/ChatDisabled' import {MessageInput} from '#/screens/Messages/Conversation/MessageInput' @@ -97,6 +101,12 @@ export function MessagesList({ startContentOffset: 0, }) + const [emojiPickerState, setEmojiPickerState] = + React.useState<EmojiPickerState>({ + isOpen: false, + pos: {top: 0, left: 0, right: 0, bottom: 0}, + }) + // We need to keep track of when the scroll offset is at the bottom of the list to know when to scroll as new items // are added to the list. For example, if the user is scrolled up to 1iew older messages, we don't want to scroll to // the bottom. @@ -422,13 +432,22 @@ export function MessagesList({ <MessageInput onSendMessage={onSendMessage} hasEmbed={!!embedUri} - setEmbed={setEmbed}> + setEmbed={setEmbed} + openEmojiPicker={pos => setEmojiPickerState({isOpen: true, pos})}> <MessageInputEmbed embedUri={embedUri} setEmbed={setEmbed} /> </MessageInput> </> )} </KeyboardStickyView> + {isWeb && ( + <EmojiPicker + pinToTop + state={emojiPickerState} + close={() => setEmojiPickerState(prev => ({...prev, isOpen: false}))} + /> + )} + {newMessagesPill.show && <NewMessagesPill onPress={scrollToEndOnPress} />} </> ) |