import React, { useState, useMemo } from 'react'; import { icons } from 'lucide-react'; interface IconPickerProps { onSelect: (iconName: string) => void; } const IconPicker: React.FC = ({ onSelect }) => { const [search, setSearch] = useState(''); const filteredIcons = useMemo(() => { if (!search) { return Object.keys(icons).slice(0, 50); } return Object.keys(icons).filter(name => name.toLowerCase().includes(search.toLowerCase()) ); }, [search]); return (
setSearch(e.target.value)} className="w-full p-2 mb-4 bg-gray-700 rounded text-white" />
{filteredIcons.map(iconName => { const LucideIcon = icons[iconName as keyof typeof icons]; return (
onSelect(iconName)} className="cursor-pointer flex flex-col items-center justify-center p-2 rounded-lg hover:bg-gray-700" > {iconName}
); })}
); }; export default IconPicker;