'use client'

const RECENT_EMOJIS_KEY = 'recent_emojis'
const MAX_RECENT_EMOJIS = 20

export type EmojiItem = { id: string; alt: string; code: string; src: string }

/**
 * 從 localStorage 獲取最近使用的表情符號
 */
export function getRecentEmojis(emojiItems: EmojiItem[]): EmojiItem[] {
    if (typeof window === 'undefined') return []
    try {
        const stored = localStorage.getItem(RECENT_EMOJIS_KEY)
        if (!stored) return []
        const codes: string[] = JSON.parse(stored)
        const recent: EmojiItem[] = []
        for (const code of codes) {
            const item = emojiItems.find((it) => it.code === code)
            if (item) {
                recent.push(item)
            }
        }
        return recent
    } catch (error) {
        console.error('Failed to get recent emojis:', error)
        return []
    }
}

/**
 * 將表情符號添加到最近使用列表
 */
export function addRecentEmoji(emojiCode: string) {
    if (typeof window === 'undefined') return
    try {
        const stored = localStorage.getItem(RECENT_EMOJIS_KEY)
        let codes: string[] = stored ? JSON.parse(stored) : []
        codes = codes.filter((code) => code !== emojiCode)
        codes.unshift(emojiCode)
        codes = codes.slice(0, MAX_RECENT_EMOJIS)
        localStorage.setItem(RECENT_EMOJIS_KEY, JSON.stringify(codes))
    } catch (error) {
        console.error('Failed to add recent emoji:', error)
    }
}

