import { useConnectModal } from '@rainbow-me/rainbowkit' import { CancelBidModal, CancelBidStep } from '@reservoir0x/reservoir-kit-ui' import { FC, ReactElement, cloneElement, useContext } from 'react' import { SWRResponse } from 'swr' import { useWalletClient } from 'wagmi' import { ToastContext } from '../../context/ToastContextProvider' import { useMarketplaceChain } from 'hooks' type Props = { bidId: string openState?: [boolean, React.Dispatch>] trigger: ReactElement mutate?: SWRResponse['mutate'] } const CancelBid: FC = ({ bidId, openState, trigger, mutate }) => { const { addToast } = useContext(ToastContext) const { openConnectModal } = useConnectModal() const marketplaceChain = useMarketplaceChain() const { data: signer } = useWalletClient() if (!signer) { return cloneElement(trigger, { onClick: async () => { if (!signer) { openConnectModal?.() } }, }) } return ( { addToast?.({ title: 'User canceled bid', description: 'You have canceled the bid.', }) }} onCancelError={(error: any, data: any) => { console.log('Bid Cancel Error', error, data) addToast?.({ title: 'Could not cancel bid', description: 'The transaction was not completed.', }) }} onClose={(data, currentStep) => { if (mutate && currentStep == CancelBidStep.Complete) mutate() }} /> ) } export default CancelBid