// SPDX-License-Identifier: AGPL-3.0-or-later
import type {AutocompleteOption} from '@app/features/channel/components/Autocomplete';
import {isSticker} from '@app/features/channel/components/Autocomplete';
import styles from '@app/features/channel/components/AutocompleteEmoji.module.css';
import {AutocompleteItem} from '@app/features/channel/components/AutocompleteItem';
import {useStickerAnimation} from '@app/features/emoji/hooks/useStickerAnimation';
import * as AvatarUtils from '@app/features/user/utils/AvatarUtils';
import {observer} from 'mobx-react-lite';
import type React from 'react';
const AutocompleteStickerIcon = observer(
({id, name, isInteracting}: {id: string; name: string; isInteracting: boolean}) => {
const {shouldAnimate} = useStickerAnimation({isInteracting});
return (
);
},
);
export const AutocompleteSticker = observer(
({
onSelect,
keyboardFocusIndex,
hoverIndex,
options,
onMouseEnter,
onMouseLeave,
rowRefs,
getOptionId,
}: {
onSelect: (option: AutocompleteOption) => void;
keyboardFocusIndex: number;
hoverIndex: number;
options: Array;
onMouseEnter: (index: number) => void;
onMouseLeave: () => void;
rowRefs?: React.MutableRefObject>;
getOptionId?: (index: number) => string;
}) => {
const stickers = options.filter(isSticker);
return stickers.map((option, index) => (
0 ? option.sticker.tags.join(', ') : option.sticker.description || undefined
}
icon={
}
isKeyboardSelected={index === keyboardFocusIndex}
isHovered={index === hoverIndex}
onSelect={() => onSelect(option)}
onMouseEnter={() => onMouseEnter(index)}
onMouseLeave={onMouseLeave}
innerRef={
rowRefs
? (node) => {
rowRefs.current[index] = node;
}
: undefined
}
data-flx="channel.autocomplete-sticker.autocomplete-item.select"
/>
));
},
);