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();
}
}}
/>
);
};