import { Box, Collapse, Switch, Text } from "@chakra-ui/react"; import { useMetaplexTokenMetadata, usePublicKey, } from "@strata-foundation/react"; import { useRouter } from "next/router"; import React, { useEffect } from "react"; import { useFormContext } from "react-hook-form"; import { FormControlWithError } from "./FormControlWithError"; import { MintSelect } from "./MintSelect"; export interface IUseExistingMintProps { useExistingMint: boolean | undefined; existingMint: string | undefined; name?: string; symbol?: string; uri?: string; } export function UseExistingMintInputs() { const { register, watch, formState: { errors }, setValue, } = useFormContext(); const router = useRouter(); const mint = router.query["mint"]; const { useExistingMint, existingMint, name, symbol } = watch(); const existingMintPkey = usePublicKey(existingMint); const { metadata } = useMetaplexTokenMetadata(existingMintPkey); useEffect(() => { if (mint) { setValue("existingMint", mint as string); setValue("useExistingMint", !!mint); } }, [mint, router, setValue]); useEffect(() => { setValue("name", metadata?.data.name); setValue("symbol", metadata?.data.symbol); setValue("uri", metadata?.data.uri); }, [setValue, metadata]); return ( <> {name && ( {name} ({symbol}) )} setValue("existingMint", s)} /> ); }