import { useLang } from '@/hooks/use-lang'; import debounce from '@/lib/debounce'; import { Search } from 'lucide-react'; import iconNodes from 'lucide-static/icon-nodes.json'; import { useMemo, useState } from 'react'; import IconPickerTooltip from './icon-picker-tooltip'; import { Label } from './ui/label'; interface IconPickerProps { enableSearch?: boolean; onSelect?: (iconName: string) => void; } const IconPicker = ({ enableSearch = true, onSelect }: IconPickerProps) => { const allNames = Object.keys(iconNodes); const [searchTerm, setSearchTerm] = useState(''); const { input, frontend, common } = useLang(); const filteredIcons = useMemo(() => { if (!searchTerm) return allNames; const term = searchTerm.toLowerCase(); return allNames.filter((icon) => icon.toLowerCase().includes(term)); }, [searchTerm]); const searchHandler = debounce(async (e: any) => { setSearchTerm(e.target.value); }, 300); return (
{frontend.showing_results} {filteredIcons.length} {common.of} {allNames.length}