export const FLASH_REACTION_IDS = ['flash', 'fire', 'heart', 'eyes', 'wave', 'chat'] as const; export type FlashReactionId = (typeof FLASH_REACTION_IDS)[number]; export type FlashReaction = { id: FlashReactionId; emoji: string; label: string; message: string; }; export const FLASH_REACTIONS: FlashReaction[] = [ { id: 'flash', emoji: '\u26a1', label: 'Flash', message: 'te enviou um Flash' }, { id: 'fire', emoji: '\u{1F525}', label: 'Quente', message: 'achou você quente' }, { id: 'heart', emoji: '\u{1F9E1}', label: 'Curti', message: 'curtiu você' }, { id: 'eyes', emoji: '\u{1F440}', label: 'Interesse', message: 'está de olho em você' }, { id: 'wave', emoji: '\u{1F44B}', label: 'Oi', message: 'mandou um oi' }, { id: 'chat', emoji: '\u{1F4AC}', label: 'Conversar', message: 'quer conversar' }, ]; export const FLASH_FILTER_ALL_ACTION_ID = 'flash_filter_all'; const reactionById = Object.fromEntries(FLASH_REACTIONS.map((reaction) => [reaction.id, reaction])) as Record< FlashReactionId, FlashReaction >; export function getFlashReaction(id?: string | null): FlashReaction { if (id && id in reactionById) return reactionById[id as FlashReactionId]; return reactionById.flash; } export function flashFilterActionId(reactionId: FlashReactionId): string { return `flash_filter_${reactionId}`; } export function parseFlashInboxFilter(value: string | undefined): 'all' | FlashReactionId { if (value && FLASH_REACTION_IDS.includes(value as FlashReactionId)) { return value as FlashReactionId; } return 'all'; } export function isFlashReactionId(value: string): value is FlashReactionId { return FLASH_REACTION_IDS.includes(value as FlashReactionId); }