'use client'; import { useState, useMemo } from 'react'; import * as Icons from '@zen/core/shared/icons'; import { useToast } from '@zen/core/toast'; import AdminHeader from '../components/AdminHeader.js'; const ALL_ICONS = Object.entries(Icons); export default function IconsPage() { const [query, setQuery] = useState(''); const toast = useToast(); const filtered = useMemo(() => { if (!query.trim()) return ALL_ICONS; const q = query.trim().toLowerCase(); return ALL_ICONS.filter(([name]) => name.toLowerCase().includes(q)); }, [query]); const handleCopy = (name) => { navigator.clipboard.writeText(`<${name} className="w-5 h-5" />`); toast.success(`${name} copié`); }; return (
setQuery(e.target.value)} placeholder="Rechercher une icône..." className="w-full rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 px-4 py-2.5 text-sm text-neutral-900 dark:text-white placeholder-neutral-400 dark:placeholder-neutral-500 focus:outline-none focus:ring-2 focus:ring-blue-700/40" /> {query && ( )}
{filtered.length === 0 ? (

Aucune icône trouvée pour “{query}”

) : (
{filtered.map(([name, IconComponent]) => ( ))}
)}
); }