"use client"; import * as React from "react"; import { cn } from "./lib/utils"; // Deterministic emoji arrays by category const emojiCategories = { smileys: ["๐Ÿ˜€", "๐Ÿ˜", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜†", "๐Ÿ˜…", "๐Ÿ˜Š"], gestures: ["๐Ÿ‘", "๐Ÿ‘Ž", "๐Ÿ‘‹", "๐Ÿค", "๐Ÿ™", "โœŠ", "๐Ÿ‘Š", "๐Ÿค˜", "๐Ÿค™", "๐Ÿ’ช"], hearts: ["โค๏ธ", "๐Ÿงก", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ–ค", "๐Ÿค", "๐Ÿ’”", "โฃ๏ธ"], objects: ["๐Ÿ’ป", "๐Ÿ“ฑ", "๐Ÿ’พ", "๐ŸŽฎ", "๐Ÿ“š", "๐ŸŽจ", "๐ŸŽต", "๐Ÿ“ธ", "๐ŸŽค", "๐Ÿ“ "], }; const EmojiPicker: React.FC<{ onSelect: (emoji: string) => void; initialCategory?: string; }> = ({ onSelect, initialCategory = "smileys" }) => { const [category, setCategory] = React.useState(initialCategory); const [search, setSearch] = React.useState(""); const [selected, setSelected] = React.useState(""); const filteredEmojis = emojiCategories[category as keyof typeof emojiCategories] .filter((emoji) => emoji.includes(search)) .map((emoji) => emoji); return (
{/* Category tabs */}
{Object.keys(emojiCategories).map((cat) => ( ))}
{/* Search filter */}
setSearch(e.target.value)} placeholder="Search emoji..." className="flex-1 rounded-border border-input px-3 py-2 text-sm" />
{/* Emoji grid */}
{filteredEmojis.map((emoji) => ( ))}
{/* Recent row (placeholder - could store in localStorage) */}
Recent
); }; export { EmojiPicker };