import React, { useContext, useEffect, useState } from "react" import { Box, Stack } from "@mui/material" import { useForm } from "react-hook-form" import { toUnionAddress } from "@rarible/types" import { faChevronRight } from "@fortawesome/free-solid-svg-icons" import { FormTextInput } from "../../components/common/form/form-text-input" import { FormSubmit } from "../../components/common/form/form-submit" import { resultToState, useRequestResult } from "../../components/hooks/use-request-result" import { ConnectorContext } from "../../components/connector/sdk-connection-provider" import { RequestResult } from "../../components/common/request-result" import { FormFileInput } from "../../components/common/form/form-file-input" import { UploadMetaResponse } from "@rarible/sdk/build/sdk-blockchains/union/meta/domain" interface IUploadMEtaFormProps { onComplete: (response: UploadMetaResponse) => void } export function UploadMetaForm({ onComplete }: IUploadMEtaFormProps) { const connection = useContext(ConnectorContext) const form = useForm() const { handleSubmit } = form const { result } = useRequestResult() const blockchain = connection.sdk?.wallet?.walletType const [disabled, setDisabled] = useState(true) useEffect(() => { const subscription = form.watch(({ name, description, image, accountAddress }) => { setDisabled(!(name && description && image.length && accountAddress)) }) return () => subscription.unsubscribe() }, [form, form.watch]) return ( <>