import { useMemo, useState } from "react"; import { useTranslation } from "../i18n"; import { ProviderIcon } from "./ProviderIcon"; import { iconList } from "../icons/extracted"; import { searchIcons, getIconMetadata } from "../icons/extracted/metadata"; interface IconPickerProps { value?: string | null; onValueChange: (icon: string) => void; } export function IconPicker({ value, onValueChange }: IconPickerProps) { const { t } = useTranslation(); const [searchQuery, setSearchQuery] = useState(""); const filteredIcons = useMemo(() => { if (!searchQuery.trim()) return iconList; return searchIcons(searchQuery); }, [searchQuery]); return (
setSearchQuery(e.target.value)} />
{filteredIcons.map((iconName) => { const meta = getIconMetadata(iconName); const isSelected = value === iconName; return ( ); })}
{filteredIcons.length === 0 && (
{t("iconPickerNoResults")}
)}
); }