Browse Source

feat: pin + reaction as the first suggestion

imwald
codytseng 5 months ago committed by Silberengel
parent
commit
81eb7a569d
  1. 28
      src/components/SuggestedEmojis/index.tsx

28
src/components/SuggestedEmojis/index.tsx

@ -21,18 +21,34 @@ export default function SuggestedEmojis({
useEffect(() => { useEffect(() => {
try { try {
const suggested = getSuggested() const suggested = getSuggested()
const suggestEmojis = suggested const emojiSet = new Set<string>()
.sort((a, b) => b.count - a.count) const suggestEmojis = (
.map((item) => parseEmojiPickerUnified(item.unified)) suggested
.filter(Boolean) as (string | TEmoji)[] .sort((a, b) => b.count - a.count)
setSuggestedEmojis(() => [...suggestEmojis, ...DEFAULT_SUGGESTED_EMOJIS].slice(0, 8)) .map((item) => parseEmojiPickerUnified(item.unified))
.filter(Boolean) as (string | TEmoji)[]
)
.concat(DEFAULT_SUGGESTED_EMOJIS)
.filter((emoji) => {
if (typeof emoji !== 'string') return true
if (emojiSet.has(emoji)) return false
emojiSet.add(emoji)
return true
})
setSuggestedEmojis(suggestEmojis.slice(0, 9))
} catch { } catch {
// ignore // ignore
} }
}, []) }, [])
return ( return (
<div className="flex gap-2 p-1" onClick={(e) => e.stopPropagation()}> <div className="flex gap-1 p-1" onClick={(e) => e.stopPropagation()}>
<div
className="w-8 h-8 rounded-lg clickable flex justify-center items-center text-xl"
onClick={() => onEmojiClick('+')}
>
<Emoji emoji="+" />
</div>
{suggestedEmojis.map((emoji, index) => {suggestedEmojis.map((emoji, index) =>
typeof emoji === 'string' ? ( typeof emoji === 'string' ? (
<div <div

Loading…
Cancel
Save