diff --git a/packages/ui/src/components/emoji/ActionsPopup.svelte b/packages/ui/src/components/emoji/ActionsPopup.svelte index 88a3c04d96..3637df7bcb 100644 --- a/packages/ui/src/components/emoji/ActionsPopup.svelte +++ b/packages/ui/src/components/emoji/ActionsPopup.svelte @@ -5,34 +5,34 @@ // import { createEventDispatcher } from 'svelte' import type { Emoji } from 'emojibase' - import { EmojiWithGroup, getEmojiByHexcode } from '.' - import { EmojiButton, getSkinTone, emojiStore } from '.' + import { ExtendedEmoji, getEmojiByHexcode, EmojiButton, getSkinTone, emojiStore, getEmojiSkins } from '.' import { Label, IconDelete, closeTooltip, ButtonBase } from '../..' import plugin from '../../plugin' import SkinToneTooltip from './SkinToneTooltip.svelte' - export let emoji: EmojiWithGroup + export let emoji: ExtendedEmoji export let remove: boolean = false export let skinTone: number = getSkinTone() const dispatch = createEventDispatcher() closeTooltip() - const haveSkins = Array.isArray(emoji.skins) - const combinedEmoji = haveSkins && (emoji?.skins?.length ?? 0) > 5 + const skins = getEmojiSkins(emoji) + const haveSkins = Array.isArray(skins) + const combinedEmoji = haveSkins && (skins?.length ?? 0) > 5 const clickRemove = (): void => { dispatch('close', 'remove') } - const getEmojiParts = (e: EmojiWithGroup): EmojiWithGroup[] => { + const getEmojiParts = (): ExtendedEmoji[] => { const def = $emojiStore[168] - const temp = e.skins?.find((skin) => Array.isArray(skin.tone) && skin.tone.length > 1)?.hexcode.split('-200D-') + const temp = skins?.find((skin) => Array.isArray(skin.tone) && skin.tone.length > 1)?.hexcode.split('-200D-') if (temp === undefined || temp.length < 2) return [def, def] const firstEmoji = getEmojiByHexcode(temp[0].slice(0, -6)) ?? def const secondEmoji = getEmojiByHexcode(temp[temp.length - 1].slice(0, -6)) ?? def return [firstEmoji, secondEmoji] } - const emojiParts = getEmojiParts(emoji) + const emojiParts = getEmojiParts() const combinedTones: number[] = [skinTone, skinTone] const updateSkinTone = (result: CustomEvent<{ detail: number }>, index: number): void => { @@ -45,16 +45,16 @@ } } - const getEmojiByTone = (e: EmojiWithGroup, [a, b]: number[]): Emoji | undefined => { + const getEmojiByTone = (e: ExtendedEmoji, [a, b]: number[]): Emoji | undefined => { const equal = a === b const noTone = a === 0 return equal && noTone - ? e - : e.skins?.find((skin) => + ? e as Emoji + : getEmojiSkins(e)?.find((skin) => equal ? skin.tone === a : Array.isArray(skin.tone) && skin.tone[0] === a && skin.tone[1] === b ) } - const getEmojiStringByTone = (e: EmojiWithGroup, [a, b]: number[]): string | undefined => { + const getEmojiStringByTone = (e: ExtendedEmoji, [a, b]: number[]): string | undefined => { return getEmojiByTone(e, [a, b])?.emoji } @@ -92,7 +92,7 @@ {:else}