Add text reaction (#1462)

This commit is contained in:
Ajay Bura 2023-10-19 22:20:38 +11:00 committed by GitHub
parent 5eafa37cdd
commit 144cf71368
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 1 deletions

View file

@ -13,6 +13,7 @@ import React, {
import {
Badge,
Box,
Chip,
Icon,
IconButton,
Icons,
@ -623,6 +624,7 @@ export function EmojiBoard({
onEmojiSelect,
onCustomEmojiSelect,
onStickerSelect,
allowTextCustomEmoji,
}: {
tab?: EmojiBoardTab;
onTabChange?: (tab: EmojiBoardTab) => void;
@ -632,6 +634,7 @@ export function EmojiBoard({
onEmojiSelect?: (unicode: string, shortcode: string) => void;
onCustomEmojiSelect?: (mxc: string, shortcode: string) => void;
onStickerSelect?: (mxc: string, shortcode: string) => void;
allowTextCustomEmoji?: boolean;
}) {
const emojiTab = tab === EmojiBoardTab.Emoji;
const stickerTab = tab === EmojiBoardTab.Sticker;
@ -777,11 +780,33 @@ export function EmojiBoard({
<Box direction="Column" gap="200">
{onTabChange && <EmojiBoardTabs tab={tab} onTabChange={onTabChange} />}
<Input
data-emoji-board-search
variant="SurfaceVariant"
size="400"
placeholder="Search"
maxLength={50}
after={<Icon src={Icons.Search} size="50" />}
after={
allowTextCustomEmoji && result?.query ? (
<Chip
variant="Primary"
radii="Pill"
after={<Icon src={Icons.ArrowRight} size="50" />}
onClick={() => {
const searchInput = document.querySelector<HTMLInputElement>(
'[data-emoji-board-search="true"]'
);
const textReaction = searchInput?.value.trim();
if (!textReaction) return;
onCustomEmojiSelect?.(textReaction, textReaction);
requestClose();
}}
>
<Text size="L400">React</Text>
</Chip>
) : (
<Icon src={Icons.Search} size="50" />
)
}
onChange={handleOnChange}
autoFocus={!mobileOrTablet()}
/>

View file

@ -734,6 +734,7 @@ export const Message = as<'div', MessageProps>(
<EmojiBoard
imagePackRooms={imagePackRooms ?? []}
returnFocusOnDeactivate={false}
allowTextCustomEmoji
onEmojiSelect={(key) => {
onReactionToggle(mEvent.getId()!, key);
setEmojiBoard(false);