import { useState } from "react"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; const EMOJIS = ["👍", "❤️", "🔥", "👏", "🎉", "😂", "🤯"] as const; export interface ReactionsTrayProps { onReact: (emoji: string) => void; disabled?: boolean; } interface Float { id: number; emoji: string; left: number; } let idc = 0; export function ReactionsTray({ onReact, disabled }: ReactionsTrayProps) { const [floats, setFloats] = useState([]); function fire(emoji: string) { if (disabled) return; onReact(emoji); const id = ++idc; const left = 10 + Math.random() * 80; // random horizontal variance within tray setFloats((f) => [...f, { id, emoji, left }]); setTimeout(() => { setFloats((f) => f.filter((x) => x.id !== id)); }, 2500); } return (
{EMOJIS.map((emoji) => ( {`React with ${emoji}`} ))} {/* Floating reactions */}
{floats.map((f) => ( {f.emoji} ))}
); }