import React, { useState, useMemo } from "react"; import { FiChevronDown } from "react-icons/fi"; import * as RadixDialog from "@radix-ui/react-dialog"; import { motion, AnimatePresence } from "framer-motion"; import { useTheme } from "@/context"; interface ChainSelectorProps { chains: any[]; selectedChain: any; onSelectChain: (chain: any) => void; children?: React.ReactNode; toolDetails?: { key: string; name: string; logoURI: string; }; } export const ChainSelector: React.FC = ({ chains, selectedChain, onSelectChain, children, toolDetails, }) => { const [isOpen, setIsOpen] = useState(false); const [searchTerm, setSearchTerm] = useState(""); const theme = useTheme(); const filteredChains = useMemo(() => { return chains.filter((chain) => chain.name.toLowerCase().includes(searchTerm.toLowerCase()), ); }, [chains, searchTerm]); return ( {children || ( )} {isOpen && ( Select a chain setSearchTerm(e.target.value)} className={`w-full p-2 mb-4 rounded-md bg-${theme.backgroundColorSecondary} text-${theme.textColor}`} />
{filteredChains.map((chain) => ( ))}
)}
); };