diff --git a/ts/components/emoji/EmojiPicker.tsx b/ts/components/emoji/EmojiPicker.tsx index 4e4a367b92..4466e4adff 100644 --- a/ts/components/emoji/EmojiPicker.tsx +++ b/ts/components/emoji/EmojiPicker.tsx @@ -24,10 +24,11 @@ export type EmojiPickDataType = { skinTone?: number; shortName: string }; export type OwnProps = { readonly i18n: LocalizerType; + readonly disableSkinTones?: boolean; readonly onPickEmoji: (o: EmojiPickDataType) => unknown; readonly doSend?: () => unknown; - readonly skinTone: number; - readonly onSetSkinTone: (tone: number) => unknown; + readonly skinTone?: number; + readonly onSetSkinTone?: (tone: number) => unknown; readonly recentEmojis?: Array; readonly onClose?: () => unknown; }; @@ -63,6 +64,7 @@ export const EmojiPicker = React.memo( doSend, onPickEmoji, skinTone = 0, + disableSkinTones = false, onSetSkinTone, recentEmojis = [], style, @@ -81,7 +83,9 @@ export const EmojiPicker = React.memo( const [searchMode, setSearchMode] = React.useState(false); const [searchText, setSearchText] = React.useState(''); const [scrollToRow, setScrollToRow] = React.useState(0); - const [selectedTone, setSelectedTone] = React.useState(skinTone); + const [selectedTone, setSelectedTone] = React.useState( + disableSkinTones ? 0 : skinTone + ); const handleToggleSearch = React.useCallback( (e: React.MouseEvent) => { @@ -114,9 +118,11 @@ export const EmojiPicker = React.memo( const { tone = '0' } = e.currentTarget.dataset; const parsedTone = parseInt(tone, 10); setSelectedTone(parsedTone); - onSetSkinTone(parsedTone); + if (onSetSkinTone) { + onSetSkinTone(parsedTone); + } }, - [] + [onSetSkinTone] ); const handlePickEmoji = React.useCallback( @@ -376,25 +382,27 @@ export const EmojiPicker = React.memo( /> )} - + {!disableSkinTones ? ( + + ) : null} ); } diff --git a/ts/state/smart/EmojiPicker.tsx b/ts/state/smart/EmojiPicker.tsx index 8341bddc22..f4b6e9ea58 100644 --- a/ts/state/smart/EmojiPicker.tsx +++ b/ts/state/smart/EmojiPicker.tsx @@ -14,8 +14,11 @@ import { LocalizerType } from '../../types/Util'; export const SmartEmojiPicker = React.forwardRef< HTMLDivElement, - Pick ->(({ onPickEmoji, onClose, style }, ref) => { + Pick< + EmojiPickerProps, + 'onPickEmoji' | 'onClose' | 'style' | 'disableSkinTones' + > +>(({ onPickEmoji, onClose, style, disableSkinTones }, ref) => { const i18n = useSelector(getIntl); const skinTone = useSelector(state => get(state, ['items', 'skinTone'], 0) @@ -52,6 +55,7 @@ export const SmartEmojiPicker = React.forwardRef< recentEmojis={recentEmojis} onClose={onClose} style={style} + disableSkinTones={disableSkinTones} /> ); }); diff --git a/ts/state/smart/Timeline.tsx b/ts/state/smart/Timeline.tsx index 2b9fb10491..2b2c0a06b3 100644 --- a/ts/state/smart/Timeline.tsx +++ b/ts/state/smart/Timeline.tsx @@ -59,6 +59,7 @@ function renderEmojiPicker({ onPickEmoji={onPickEmoji} onClose={onClose} style={style} + disableSkinTones={true} /> ); }