import type { EmojiItem } from './emojiUtils'

export const CHAT_EMOJI_BASE_PATH = '/images/emojis'
export const CHAT_EMOJI_COUNT = 60

/** 聊天訊息／輸入框內表情顯示尺寸 (px) */
export const CHAT_EMOJI_MESSAGE_PX = 30
/** 表情選擇面板內圖示尺寸 (px) */
export const CHAT_EMOJI_PANEL_PX = 30
/** 表情選擇面板按鈕區尺寸 (px) */
export const CHAT_EMOJI_PANEL_CELL_PX = 44

function emotionFileName(index: number): string {
    return `emotion_${String(index).padStart(2, '0')}`
}

export function buildChatEmojiItem(index: number): EmojiItem {
    const file = emotionFileName(index)
    return {
        id: String(index),
        alt: file,
        code: `/${file}/`,
        src: `${CHAT_EMOJI_BASE_PATH}/${file}.png`,
    }
}

/** 聊天室預設表情：public/images/emojis/emotion_01.png ~ emotion_60.png */
export const CHAT_EMOJI_ITEMS: EmojiItem[] = Array.from({ length: CHAT_EMOJI_COUNT }, (_, i) =>
    buildChatEmojiItem(i + 1)
)

export function findChatEmojiByCode(code: string): EmojiItem | undefined {
    return CHAT_EMOJI_ITEMS.find((item) => item.code === code)
}
