import { ArrowBackIcon, ArrowForwardIcon, CheckCircleIcon } from '@chakra-ui/icons' import { Accordion, AccordionButton, AccordionIcon, AccordionItem, AccordionPanel, Box, Button, Flex, Text, } from '@chakra-ui/react' import { useWeb3React } from '@web3-react/core' import { useRouter } from 'next/router' import React, { useContext, useEffect, useState } from 'react' import { Token } from '../../../configs/tokens/types' import { StepContext } from '../../../contexts' import CustomModal from '../CustomModal' import FailedAnimationComponent from '../FailedAnimationComponent' import SuccessAnimationComponent from '../SuccessAnimationComponent' import ApprovalToken from './ApprovalToken' export interface TokenApproval { token: Token spenderAddress: string } interface IModalApprovalProps { isOpen: boolean onClose: () => void approvalTokens: TokenApproval[] transactionStatus?: boolean isSkipApprovalStep?: boolean ContentElement?: any getContentElementProps?: any } const ModalApproval: React.FunctionComponent = (props) => { const { approvalTokens, ContentElement, isOpen, onClose, transactionStatus = false, isSkipApprovalStep = false, getContentElementProps, children, } = props const { account } = useWeb3React() const router = useRouter() const { step, setStep, resetStep } = useContext(StepContext) const [allowanceList, setAllowanceList] = useState(new Array(approvalTokens.length).fill(0)) useEffect(() => { resetStep() return () => { resetStep() } }, [resetStep]) const setApprovalList = (value, index) => { setAllowanceList([...allowanceList.slice(0, index), value, ...allowanceList.slice(index + 1)]) setStep(step + 1) } return ( {!isSkipApprovalStep && approvalTokens.map((item, index) => ( ))}

{approvalTokens.length + 1}. Confirm Listing approvalTokens.length ? 'green.300' : 'gray.300'} mr={'10px'} />

{ContentElement && } {children && children}

{approvalTokens.length + 2}. Transaction

{!transactionStatus ? ( <> Transaction Failed! ) : ( <> Transaction Successfully! )}
) } export default ModalApproval