import { useState } from "react"; import { useSelector } from "react-redux"; import { PiRobot, PiBrain, PiGraduationCap, PiCode, PiFlask, PiBook, PiStar, PiRocket, PiLightning, PiSparkle, PiGlobe, PiHeart, PiShield, PiWrench, PiMagnifyingGlass, PiChartLine, PiPenNib, PiMusicNotes, PiCamera, PiGameController, PiPencil, } from "react-icons/pi"; import { FiSearch, FiEdit2, FiTrash2, FiGlobe as FiGlobeIcon, FiLock, } from "react-icons/fi"; const iconMap = { robot: PiRobot, brain: PiBrain, graduation: PiGraduationCap, code: PiCode, flask: PiFlask, book: PiBook, star: PiStar, rocket: PiRocket, lightning: PiLightning, sparkle: PiSparkle, globe: PiGlobe, heart: PiHeart, shield: PiShield, wrench: PiWrench, search: PiMagnifyingGlass, chart: PiChartLine, pen: PiPenNib, music: PiMusicNotes, camera: PiCamera, game: PiGameController, pencil: PiPencil, }; // Mock data - sau này sẽ thay bằng API call const mockAgents = [ { id: "math-tutor", name: "Trợ lý Toán học", icon: "graduation", color: "#6366f1", description: "Giải thích các bài toán từ cơ bản đến nâng cao", visibility: "public", tools: ["calculator", "web_search"], createdAt: "2026-04-15", }, { id: "code-reviewer", name: "Code Reviewer", icon: "code", color: "#10b981", description: "Review code và gợi ý cải thiện", visibility: "private", tools: ["code_interpreter"], createdAt: "2026-04-18", }, { id: "translator-bot", name: "Dịch thuật AI", icon: "globe", color: "#3b82f6", description: "Dịch đa ngôn ngữ chính xác cao", visibility: "public", tools: ["translator", "web_search"], createdAt: "2026-04-20", }, ]; function ManageAgent({ onEditAgent }) { const { isDark } = useSelector((state) => state.theme); const [searchQuery, setSearchQuery] = useState(""); const [agents, setAgents] = useState(mockAgents); const filteredAgents = agents.filter( (agent) => agent.name.toLowerCase().includes(searchQuery.toLowerCase()) || agent.description.toLowerCase().includes(searchQuery.toLowerCase()) ); const handleDelete = (agentId, e) => { e.stopPropagation(); if (window.confirm("Bạn có chắc chắn muốn xóa agent này?")) { setAgents((prev) => prev.filter((a) => a.id !== agentId)); } }; const toggleVisibility = (agentId, e) => { e.stopPropagation(); setAgents((prev) => prev.map((a) => a.id === agentId ? { ...a, visibility: a.visibility === "public" ? "private" : "public" } : a ) ); }; const handleEdit = (agent, e) => { e.stopPropagation(); if (onEditAgent) { onEditAgent(agent); } }; const getAgentIcon = (iconId) => { const IconComponent = iconMap[iconId]; return IconComponent || PiRobot; }; return (