import { useState } from 'react'; import { api } from '../lib/api.ts'; interface Reaction { emoji: string; count: number; users: string[]; reacted: boolean; } interface ReactionBarProps { messageId: string; reactions: Reaction[]; onRefresh: () => void; } export function ReactionBar({ messageId, reactions, onRefresh }: ReactionBarProps) { const [loading, setLoading] = useState(false); const toggleReaction = async (emoji: string) => { if (loading) return; setLoading(true); try { const existing = reactions.find(r => r.emoji === emoji); if (existing?.reacted) { await api.delete(`/messages/${messageId}/reactions/${encodeURIComponent(emoji)}`); } else { await api.post(`/messages/${messageId}/reactions`, { emoji }); } onRefresh(); } catch (error) { console.error('Failed to toggle reaction:', error); } finally { setLoading(false); } }; if (reactions.length === 0) return null; return (
{reactions.map((reaction) => ( ))}
); }