diff --git a/web/avatars/emoji-avatar-selection-modal.css b/web/avatars/emoji-avatar-selection-modal.css --- a/web/avatars/emoji-avatar-selection-modal.css +++ b/web/avatars/emoji-avatar-selection-modal.css @@ -9,3 +9,13 @@ justify-content: center; padding-top: 20px; } + +div.emojiPickerContainer { + display: flex; + justify-content: center; + align-items: center; +} + +div.colorSelectorContainer { + margin: 20px 80px; +} diff --git a/web/avatars/emoji-avatar-selection-modal.react.js b/web/avatars/emoji-avatar-selection-modal.react.js --- a/web/avatars/emoji-avatar-selection-modal.react.js +++ b/web/avatars/emoji-avatar-selection-modal.react.js @@ -1,5 +1,7 @@ // @flow +import data from '@emoji-mart/data'; +import Picker from '@emoji-mart/react'; import * as React from 'react'; import { useModalContext } from 'lib/components/modal-provider.react.js'; @@ -50,16 +52,25 @@ [pendingAvatarColor, pendingAvatarEmoji], ); + const onEmojiSelect = React.useCallback(selection => { + setPendingAvatarEmoji(selection.native); + }, []); + return ( <Modal name="Emoji avatar selection" size="large" onClose={popModal}> <div className={css.modalBody}> <div className={css.avatarContainer}> <Avatar avatarInfo={pendingEmojiAvatar} size="profile" /> </div> - <ColorSelector - currentColor={pendingAvatarColor} - onColorSelection={setPendingAvatarColor} - /> + <div className={css.emojiPickerContainer}> + <Picker data={data} theme="dark" onEmojiSelect={onEmojiSelect} /> + </div> + <div className={css.colorSelectorContainer}> + <ColorSelector + currentColor={pendingAvatarColor} + onColorSelection={setPendingAvatarColor} + /> + </div> </div> </Modal> );