import React, { useState } from 'react'; import { Search, Filter, Plus, Wrench, Terminal, Globe, Camera, CameraOff, Image, Images, CloudSun, Calendar, TrendingUp, Coins, Trash2, Edit2, X, Box } from 'lucide-react'; import { Button, Input, Badge, Dialog } from '../components/UI'; import { mockTools } from '../services/mockData'; import { Tool } from '../types'; // Map icon strings to React Nodes const iconMap: Record = { Camera: , CameraOff: , Image: , Images: , CloudSun: , Calendar: , TrendingUp: , Coins: , Terminal: , Globe: , Wrench: , }; export const ToolLibraryPage: React.FC = () => { const [tools, setTools] = useState(mockTools); const [searchTerm, setSearchTerm] = useState(''); const [categoryFilter, setCategoryFilter] = useState<'all' | 'system' | 'query'>('all'); const [isAddModalOpen, setIsAddModalOpen] = useState(false); // New Tool Form const [newToolName, setNewToolName] = useState(''); const [newToolDesc, setNewToolDesc] = useState(''); const [newToolCategory, setNewToolCategory] = useState<'system' | 'query'>('system'); const filteredTools = tools.filter(tool => { const matchesSearch = tool.name.toLowerCase().includes(searchTerm.toLowerCase()); const matchesCategory = categoryFilter === 'all' || tool.category === categoryFilter; return matchesSearch && matchesCategory; }); const handleAddTool = () => { if (!newToolName.trim()) return; const newTool: Tool = { id: `custom_${Date.now()}`, name: newToolName, description: newToolDesc, category: newToolCategory, icon: newToolCategory === 'system' ? 'Terminal' : 'Globe', isCustom: true }; setTools([...tools, newTool]); setIsAddModalOpen(false); setNewToolName(''); setNewToolDesc(''); }; const handleDeleteTool = (e: React.MouseEvent, id: string) => { e.stopPropagation(); if (confirm('确认删除该工具吗?')) { setTools(prev => prev.filter(t => t.id !== id)); } }; return (

工具与插件

setSearchTerm(e.target.value)} />
{filteredTools.map(tool => (
{iconMap[tool.icon] || }
{tool.name} {tool.isCustom && CUSTOM}
{tool.category === 'system' ? 'SYSTEM' : 'QUERY'} ID: {tool.id}

{tool.description}

{tool.isCustom && (
)}
))} {filteredTools.length === 0 && (

未找到相关工具

)}
setIsAddModalOpen(false)} title="添加自定义工具" footer={ <> } >
setNewToolName(e.target.value)} placeholder="例如: 智能家居控制" autoFocus />