import React from "react"; import { useColorModeValue, Box, Button, Icon, Input, InputGroup, InputRightElement, useDisclosure, } from "@chakra-ui/react"; import { useWallet } from "@solana/wallet-adapter-react"; import { TokenSearch, usePrimaryClaimedTokenRef } from "@strata-foundation/react"; import { useCallback, useEffect } from "react"; import { AiOutlineSearch } from "react-icons/ai"; export const MintSelect = ({ value, onChange, }: { value: string; onChange: (i: string) => void; }) => { const { isOpen, onClose, onOpen } = useDisclosure(); const { publicKey } = useWallet(); const escFunction = useCallback((e: any) => { if (e.key === "Escape") { e.preventDefault(); e.stopPropagation(); onClose(); } }, []); const { info: tokenRef } = usePrimaryClaimedTokenRef(publicKey); const inputBg = { bg: "gray.200", _dark: { bg: "gray.800" } }; const backgroundColor = useColorModeValue("gray.200", "gray.800"); useEffect(() => { document.addEventListener("keydown", escFunction, true); return () => { document.removeEventListener("keydown", escFunction, true); }; }, []); return !isOpen ? ( <> {tokenRef && ( )} onChange(e.target.value)} fontSize="sm" {...inputBg} /> ) : ( { const mint = t.account?.mint; if (mint) { onChange(mint.toBase58()); onClose(); } }} /> ); };