UNPKG

@mojito-inc/secondary-market

Version:

Mojito secondary market is the platform to purchase NFT.

2 lines (1 loc) 23 kB
import{jsx as e}from"react/jsx-runtime";import{useState as i,useMemo as o,useCallback as a,useEffect as l}from"react";import{useAuth as t,useOffer as r}from"@mojito-inc/core-service";import{utils as n}from"ethers";import s from"moment";import{Currency as d,ProviderType as u,CryptoCurrency as c}from"../interface/index.js";import{useSupportedCurrency as m}from"../hooks/useSupportedCurrency.js";import{useTokenDetails as v}from"../hooks/useTokenDetails.js";import{getFee as p}from"../utils/getFee.utils.js";import{checkApproval as g,makeOfferSolanaItem as f,unlockApproval as b}from"../utils/makeOfferContract.utils.js";import{truncateDecimal as y,roundUp as w}from"../utils/truncateDecimal.utils.js";import{onSwitchNetwork as h}from"../utils/switchNetwork.utils.js";import{swapPrice as O}from"../utils/swapPrice.utils.js";import"@mui/material/Stack";import"@mui/material/Modal";import"@mui/material/Divider";import"@mui/material/Grid";import"@mui/material/Button";import"@mui/material/Typography";import"@mui/material/Box";import"@mui/material/styles";import"html-react-parser";import"../component/VideoWithImageCard.js";import"@mui/material/Tooltip";import"@mui/icons-material/InfoOutlined";import"@mui/icons-material/KeyboardArrowDown";import"@mui/material/Select";import"@mui/material/TextField";import"@mui/material/MenuItem";import"@mui/icons-material/ImportExport";import"@mui/icons-material/Warning";import"@mui/icons-material/CheckCircleOutline";import"@mui/icons-material/ErrorOutline";import"@mui/material/Checkbox";import"@mui/icons-material/ContentCopy";import{truncateAddress as C}from"../utils/truncateAddress.utils.js";import{formatNumberWithCommas as j}from"../utils/formatNumberWithCommas.js";import"@mui/icons-material/KeyboardArrowUp";import"@mui/icons-material/HelpOutline";import"@mui/material/IconButton";import"@mui/icons-material/FavoriteBorder";import"@mui/icons-material/Favorite";import"@mui/icons-material/FileCopyOutlined";import"@mui/material/Pagination";import"@mui/material/PaginationItem";import"@mui/material";import"@mui/material/Table";import"@mui/material/TableCell";import"@mui/material/TableHead";import"@mui/material/TableBody";import"@mui/material/TableRow";import"@mui/material/TableContainer";import"@mui/icons-material/OpenInNew";import"@mui/material/Skeleton";import"@mui/material/CardActions";import"@mui/material/Card";import"@mui/material/CardContent";import"@mui/icons-material/RemoveCircleOutline";import"@mui/icons-material/SellOutlined";import"@mui/icons-material/AttachMoneyOutlined";import"@mui/icons-material/Send";import"@mui/icons-material/NewReleases";import"@mui/icons-material/CancelScheduleSend";import"@mui/icons-material/HourglassDisabledOutlined";import"@mui/icons-material/CallMissedOutlined";import"@mui/icons-material/MoveToInboxOutlined";import"@mui/icons-material/CheckCircleOutlineOutlined";import"@mui/icons-material/BorderColorOutlined";import"@mui/icons-material/Twitter";import"@mui/icons-material/MoreVert";import{ErrorsType as k}from"../constant/index.js";import"@mui/material/useMediaQuery";import"@mui/material/CircularProgress";import"react-player";import"@mui/icons-material/Pause";import"@mui/icons-material/PlayArrow";import"../_virtual/_tslib.js";import"@mui/material/Tab";import"@mui/material/Tabs";import"@mui/material/Menu";import"@mui/material/ListItem";import"@mui/material/List";import"@mui/icons-material/Close";import"@mui/material/ListItemText";import"@mui/icons-material/CheckRounded";import"@mui/icons-material/FiberManualRecord";import"@mui/icons-material/Refresh";import"../component/RenderIf.js";import"@mui/icons-material/AccountBalanceWallet";import"@mui/material/Breadcrumbs";import"@mui/icons-material/ArrowForward";import A from"../layout/MakeOfferLayout.js";import"@mui/material/InputAdornment";import"@mui/icons-material/Search";import"@mui/icons-material/FilterList";import"../provider/CollectionFilterProvider.js";import"@mui/material/Accordion";import"@mui/material/AccordionSummary";import"@mui/material/AccordionDetails";import"@mui/material/FormControlLabel";import"@mui/icons-material/ExitToAppOutlined";import{numberOfDays as I}from"../utils/getNumberOfDays.utils.js";import{getValidURL as D}from"../utils/getValidURL.utils.js";import{calculatePercentageDifference as T}from"../utils/calculateDifference.utils.js";import{useTokenOffer as S}from"../hooks/useTokenOffer.js";import{cancelOfferSolanaItem as E}from"../utils/cancelOfferContract.utils.js";import{getTraitsDescription as M}from"../utils/traits.utils.js";import P from"../hooks/useSolanaWalletPolling.js";import{useSentry as N}from"../provider/SentryProvider.js";const R=({open:R,image:L,config:x,tokenDetails:U,tokenDetailsData:W,isCancelOffer:F,walletDetails:Y,priceInputRange:B,termsURL:_,conditionOfBusinessURL:H,customRPCUrl:V,mediaCardAttributes:$,onClickViewItem:G,onCloseModal:J,onClickBackToMarketPlace:K,onRefetchBalance:Q,onConnectWallet:q,onHandleApiSessionExpired:z})=>{var X,Z,ee,ie,oe,ae,le,te,re,ne,se,de,ue,ce,me,ve,pe,ge;const[fe,be]=i(""),{sessionStatus:ye}=t(),{addCaptureExceptionForSentry:we,addExtraLogsForSentry:he}=N(),Oe=o((()=>{var e;return{orgId:x.orgId,contractAddress:U.contractAddress,itemId:U.itemId,onChainTokenID:U.onChainTokenID,currency:null!==(e=null==x?void 0:x.currency)&&void 0!==e?e:d.USD}}),[x,U]),Ce=o((()=>[{label:F?"Cancel Offer":"Submit Offer",value:F?"Cancel Offer":"Submit Offer"},{label:"Confirmation",value:"Confirmation"}]),[F]),je=o((()=>[{value:"1",label:"1 Day"},{value:"2",label:"2 Days"},{value:"3",label:"3 Days"},{value:"7",label:"7 Days"},{value:"30",label:"30 Days"}]),[]),ke=o((()=>(null==Y?void 0:Y.providerType)===u.METAMASK),[Y.providerType]),Ae=o((()=>!!Y.walletAddress),[Y.walletAddress]),Ie=o((()=>"ethereum"===Y.walletType),[Y.walletType]),De=o((()=>"solana"===(null==Y?void 0:Y.walletType)),[Y.walletType]),Te=o((()=>De?"VIN":"ETH"),[De]),Se=o((()=>Object.assign(Object.assign({},Oe),{cryptoCurrencyCode:null!=Te?Te:c.ETH})),[Te,Oe]),{tokenData:Ee,usdData:Me,networkData:Pe,detailsLoading:Ne,isNetworkLoading:Re,isPriceLoading:Le,reFetchAPI:xe}=v(Se,R,W),{supportedCurrencyData:Ue,currencyLoading:We}=m(Oe,R),{createOffer:Fe,submitProofOfOffer:Ye,cancelOffer:Be,initiateCancelOffer:_e}=r(),{offerData:He,offerLoading:Ve,offerRefetch:$e}=S(null==x?void 0:x.orgId,null!==(X=null==Ee?void 0:Ee.nftTokenId)&&void 0!==X?X:"",Ae,x.currency),{checkForMismatchWalletAddress:Ge}=P(),Je=o((()=>{const e=null==He?void 0:He.filter((e=>"PENDING"===(null==e?void 0:e.offerStatus)&&(null==e?void 0:e.ownerWalletAddress)!==(null==Y?void 0:Y.walletAddress)));return null==e?void 0:e[0]}),[He,null==Y?void 0:Y.walletAddress]),Ke=o((()=>{var e,i;return(null===(e=null==Ee?void 0:Ee.tokenOwnerAddress)||void 0===e?void 0:e.toLowerCase())===(null===(i=null==Y?void 0:Y.walletAddress)||void 0===i?void 0:i.toLowerCase())}),[Ee,null==Y?void 0:Y.walletAddress]),Qe=o((()=>!("OPEN_FOR_SALE"!==(null==Ee?void 0:Ee.status)&&"SALE_PENDING"!==(null==Ee?void 0:Ee.status)||Ke)&&(null==Ee||Ee.isMakeOfferEnabled,!0)),[Ee,Ke]),qe=a((e=>{be(e)}),[be]),ze=o((()=>{const e=null==Pe?void 0:Pe.filter((e=>e.id===(null==Ee?void 0:Ee.networkID)));return null==e?void 0:e[0]}),[Pe,Ee]),Xe=o((()=>Y.networkDetails.chainID===(null==ze?void 0:ze.chainID)),[null==ze?void 0:ze.chainID,Y.networkDetails.chainID]),Ze=o((()=>Ie?80001===(null==ze?void 0:ze.chainID)||137===(null==ze?void 0:ze.chainID)?[{label:"WMATIC",value:"WMATIC"}]:[{label:"WETH",value:"WETH"}]:De?[{label:"VIN",value:"VIN"}]:[{label:"WETH",value:"WETH"}]),[ze,Ie,De]),[ei,ii]=i(F?"Cancel Offer":"Submit Offer"),[oi,ai]=i(""),[li,ti]=i("0"),[ri,ni]=i(null===(Z=je[0])||void 0===Z?void 0:Z.label),[si,di]=i(s().add(I(ri),"days").format("MMMM DD, YYYY hh:mm A")),[ui,ci]=i(!1),[mi,vi]=i(!1),[pi,gi]=i({loading:!1,success:!1}),[fi,bi]=i({conditions:!1,terms:!1}),[yi,wi]=i({networkCheck:!1,balanceCheck:!1,isSwap:!1,message:""}),[hi,Oi]=i(""),[Ci,ji]=i(!1),[ki,Ai]=i(""),Ii=o((()=>{const e=null==Ue?void 0:Ue.filter((e=>{var i;return e.symbol===(null===(i=null==Ze?void 0:Ze[0])||void 0===i?void 0:i.label)}));return null==e?void 0:e[0]}),[Ue,Ze]),Di=o((()=>{var e,i,o;if(De){const o=null===(i=null===(e=null==Ee?void 0:Ee.metadata)||void 0===e?void 0:e.attributes)||void 0===i?void 0:i.find((e=>{var i;return"winery"===(null===(i=e.traitType)||void 0===i?void 0:i.toLowerCase())}));return o?M(o.value):""}return null===(o=null==Ee?void 0:Ee.artist)||void 0===o?void 0:o.artistName}),[null===(ee=null==Ee?void 0:Ee.artist)||void 0===ee?void 0:ee.artistName,De,null===(ie=null==Ee?void 0:Ee.metadata)||void 0===ie?void 0:ie.attributes]),Ti=a(((e,i=!1)=>{var o,a,l;const t=+e-Number(null===(o=null==Y?void 0:Y.balance)||void 0===o?void 0:o.nonNative),r=w(t,4);return(null===(a=null==Y?void 0:Y.balance)||void 0===a?void 0:a.nonNative)<+e&&!i?(null===(l=null==Y?void 0:Y.balance)||void 0===l?void 0:l.native)>=r?(wi(Object.assign(Object.assign({},yi),{isSwap:!0,balanceCheck:!1,message:String(r)})),!1):(wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!0,message:`Your connected wallet does not have enough ${null==Ii?void 0:Ii.symbol} to complete your transaction.`})),!1):+e<.04?(wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!0,message:`Minimum offer price should be more than ${Ie?"0.4":"1"} ${null==Ii?void 0:Ii.symbol}`})),!1):(wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!1,message:""})),!0)}),[null===(oe=null==Y?void 0:Y.balance)||void 0===oe?void 0:oe.native,null===(ae=null==Y?void 0:Y.balance)||void 0===ae?void 0:ae.nonNative,yi,Ii,Ie]);l((()=>{F&&$e()}),[F,$e]),l((()=>{"Expired"===ye&&(J(),null==z||z())}),[z,J,ye]),l((()=>{var e;R&&(xe(),ai(""),gi({loading:!1,success:!1}),ti("0"),ni(null===(e=null==je?void 0:je[0])||void 0===e?void 0:e.label),ii(F?"Cancel Offer":"Submit Offer"),ci(!1),vi(!1),(null==Y?void 0:Y.walletAddress)||Ai("Connect your wallet to complete process"),(null==Y?void 0:Y.walletAddress)&&Ai(""))}),[R,null==Y?void 0:Y.walletAddress,je,F,xe]),l((()=>{var e,i,o;R&&Je&&F&&(ti(null===(o=null===(i=null===(e=null==Je?void 0:Je.price)||void 0===e?void 0:e[1])||void 0===i?void 0:i.value)||void 0===o?void 0:o.toString()),di(null==Je?void 0:Je.expiryDate))}),[R,Je,F]),l((()=>{R&&((null==Y?void 0:Y.walletAddress)?wi((e=>{var i;return Object.assign(Object.assign({},e),{networkCheck:!Xe,isWalletConnected:!0,message:Xe?e.message:null!==(i=null==ze?void 0:ze.name)&&void 0!==i?i:""})})):wi((e=>Object.assign(Object.assign({},e),{isWalletConnected:!1,message:"Connect your wallet to complete checkout"}))))}),[R,ze,null==Y?void 0:Y.walletAddress,Qe,Xe]),l((()=>{R&&((null==Y?void 0:Y.walletAddress)&&!Qe&&Oi("Cannot able to purchase this item"),(null==Y?void 0:Y.walletAddress)&&Qe&&(null==hi?void 0:hi.length)>0&&Oi(""))}),[R,null==Y?void 0:Y.walletAddress,Qe,null==hi?void 0:hi.length]),l((()=>{Ci&&(Ti(li,De),ji(!1))}),[Ci,Ti,li,De,ti]);const Si=a(((e={},i={})=>{Object.keys(e).length>0&&e.key&&he(e.key,e.value),Object.keys(i).length>0&&i.exception&&we(i.exception,i.hint)}),[we,he]),Ei=a((async(e,i)=>{try{if(Ii){return await g({price:+li,currency:null==Ii?void 0:Ii.symbol,currencyContractAddress:Ii.network.wethAddress,marketPlaceContractAddress:null==Ii?void 0:Ii.secondaryMarketplaceContractAddress,status:e,provider:i})}return ai("An error was encountered while processing your payment"),!1}catch(e){return gi(Object.assign(Object.assign({},pi),{loading:!1})),ai((null==e?void 0:e.message)||"An error was encountered while processing your payment"),!1}}),[Ii,li,pi]),Mi=a((async()=>{var e,i,o,a,l,t;try{gi({loading:!0,success:!1}),ii("Confirmation");const r=await Ge(null==Y?void 0:Y.walletAddress,null==Y?void 0:Y.providerType,Si);if(!(null==r?void 0:r.isMismatched))return ai(`The initially connected wallet has been changed. Please switch back to the wallet \n (${C(null==Y?void 0:Y.walletAddress)}) to continue.`),void gi({success:!1,loading:!1});const n=await _e({orderId:(null==Je?void 0:Je.id)||"",orgId:x.orgId}),{walletAddress:s,balance:d,providerType:u,provider:c,networkDetails:{chainID:m}}=Y,v=await E(s,d,c,u,m,qe,null!==(o=null===(i=null===(e=null==n?void 0:n.data)||void 0===e?void 0:e.initiateCancelOffer)||void 0===i?void 0:i.mintAccount)&&void 0!==o?o:"",null===(a=null==n?void 0:n.data)||void 0===a?void 0:a.initiateCancelOffer,V,Si);if(v&&!v.error||(gi({loading:!1,success:!1}),qe(""),ai((null==v?void 0:v.error)||"Something went wrong")),null==v?void 0:v.success)try{await Be({orderId:(null==Je?void 0:Je.id)||"",orgId:x.orgId,signature:null===(l=v.response)||void 0===l?void 0:l.hash,currency:null!==(t=x.currency)&&void 0!==t?t:"USD",walletAddress:s})}catch(e){}finally{gi({loading:!1,success:!0})}}catch(e){gi({loading:!1,success:!1}),Si({key:"Additional Data",value:{path:"Error inside a cancel offer function catch block - 442"}},{exception:e}),qe(""),ai((null==e?void 0:e.message)||"Something went wrong! try again later")}}),[null==Je?void 0:Je.id,x.currency,x.orgId,Y,V,Be,_e,qe,Ge,Si]),Pi=a((async()=>{try{Ie&&(gi(Object.assign(Object.assign({},pi),{loading:!0})),ii("Confirmation"),await Be({orderId:(null==Je?void 0:Je.id)||"",orgId:x.orgId}),gi(Object.assign(Object.assign({},pi),{loading:!1,success:!0}))),De&&await Mi()}catch(e){gi(Object.assign(Object.assign({},pi),{loading:!1})),ai((null==e?void 0:e.message)||"Something went wrong! try again later")}}),[x,Je,pi,Ie,De,Be,Mi]),Ni=a((async e=>{var i,o,a;try{const o=n.arrayify(e);if((null==Y?void 0:Y.providerType)===u.EMAIL){return await(null===(i=null==Y?void 0:Y.provider)||void 0===i?void 0:i.signMessage(o))}const a=null==Y?void 0:Y.provider,l=null==a?void 0:a.getSigner();return await(null==l?void 0:l.signMessage(o))}catch(e){return gi(Object.assign(Object.assign({},pi),{loading:!1})),(null===(o=e.message)||void 0===o?void 0:o.includes(k.USER_REJECTED))||(null===(a=e.message)||void 0===a?void 0:a.includes(k.USER_DENIED))?ai("Transaction has been cancelled by user"):ai((null==e?void 0:e.message)||"An error was encountered while processing your payment"),""}}),[pi,null==Y?void 0:Y.provider,null==Y?void 0:Y.providerType]),Ri=a((async()=>{var e,i,o,a,l,t,r,n,d,u,c,m,v,p,g,b,y,w;try{if(Ii&&Ee){const y=await Ge(null==Y?void 0:Y.walletAddress,null==Y?void 0:Y.providerType,Si);if(!(null==y?void 0:y.isMismatched))return ai(`The initially connected wallet has been changed. Please switch back to the wallet \n (${C(null==Y?void 0:Y.walletAddress)}) to continue.`),gi({success:!1,loading:!1}),"";const w=await Fe({orgId:x.orgId,nftTokenId:null==Ee?void 0:Ee.nftTokenId,buyerAddress:Y.walletAddress,offerPrice:+li,expiryDate:s().add(I(ri),"days").utc().format(),paymentToken:null==Ii?void 0:Ii.contractAddress,currencyId:null==Ii?void 0:Ii.id,currency:null!==(e=x.currency)&&void 0!==e?e:"USD"}),{walletAddress:h,balance:O,providerType:j,provider:k,networkDetails:{chainID:A}}=Y,D=await f(h,O,k,j,qe,A,null!==(l=null===(a=null===(o=null===(i=w.data)||void 0===i?void 0:i.createOffer)||void 0===o?void 0:o.bubblegumMakeOfferParams)||void 0===a?void 0:a.seller)&&void 0!==l?l:"",null===(r=null===(t=w.data)||void 0===t?void 0:t.createOffer)||void 0===r?void 0:r.bubblegumMakeOfferParams,V,Si);if(D&&!D.error||(gi({loading:!1,success:!1}),qe(""),ai((null==D?void 0:D.error)||"Something went wrong")),null==D?void 0:D.success)try{await Ye({orgId:x.orgId,orderId:null!==(c=null===(u=null===(d=null===(n=w.data)||void 0===n?void 0:n.createOffer)||void 0===d?void 0:d.order)||void 0===u?void 0:u.id)&&void 0!==c?c:"",signature:null!==(v=null===(m=D.response)||void 0===m?void 0:m.hash)&&void 0!==v?v:"",offerReceipt:null!==(g=null===(p=D.response)||void 0===p?void 0:p.offerReceipt)&&void 0!==g?g:"",currency:null!==(b=x.currency)&&void 0!==b?b:"USD"})}catch(e){}finally{gi({loading:!1,success:!0})}}return""}catch(e){return gi({loading:!1,success:!1}),qe(""),(null===(y=null==e?void 0:e.message)||void 0===y?void 0:y.includes(k.USER_REJECTED))||(null===(w=null==e?void 0:e.message)||void 0===w?void 0:w.includes(k.USER_DENIED))?ai("Transaction has been cancelled by user"):(Si({key:"Additional Data",value:{path:"Error Inside an make offer function catch block - 601"}},{exception:e}),ai((null==e?void 0:e.message)||"An error was encountered while processing your payment")),""}}),[x.orgId,x.currency,ri,li,Ii,Ee,Y,V,Fe,Ye,qe,Ge,Si]),Li=a((async()=>{var e,i,o,a,l,t,r,n,d;try{if(di(s().add(I(ri),"days").format("MMMM DD, YYYY hh:mm A")),Ie&&Ee&&Ii){const n=await Fe({orgId:x.orgId,nftTokenId:null==Ee?void 0:Ee.nftTokenId,buyerAddress:Y.walletAddress,offerPrice:+li,expiryDate:s().add(I(ri),"days").utc().format(),paymentToken:null==Ii?void 0:Ii.contractAddress,currencyId:null==Ii?void 0:Ii.id});if(null===(i=null===(e=n.data)||void 0===e?void 0:e.createOffer)||void 0===i?void 0:i.messageToSign){const e=await Ni(null===(a=null===(o=n.data)||void 0===o?void 0:o.createOffer)||void 0===a?void 0:a.messageToSign);e&&(await Ye({orgId:x.orgId,orderId:null===(r=null===(t=null===(l=n.data)||void 0===l?void 0:l.createOffer)||void 0===t?void 0:t.order)||void 0===r?void 0:r.id,signature:e}),gi(Object.assign(Object.assign({},pi),{loading:!1,success:!0})))}}De&&await Ri()}catch(e){gi(Object.assign(Object.assign({},pi),{loading:!1})),(null===(n=e.message)||void 0===n?void 0:n.includes(k.USER_REJECTED))||(null===(d=e.message)||void 0===d?void 0:d.includes(k.USER_DENIED))?ai("Transaction has been cancelled by user"):ai((null==e?void 0:e.message)||"An error was encountered while processing your payment")}}),[pi,Ii,Ee,li,x,ri,Y.walletAddress,Ie,De,Ni,Fe,Ye,Ri]),xi=a((async e=>{var i;if(null==Y?void 0:Y.walletAddress)if(ui||mi||F||oi)if(mi||F||oi)if(ui||F||oi)try{if("Cancel Offer"===e)return void Pi();if("View Item"===e&&F)return ai(""),gi({success:!1,loading:!1}),ti("0"),ii(F?"Cancel Offer":"Submit Offer"),wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!1,message:""})),void G();if("Retry"===e)return ai(""),void ii(F?"Cancel Offer":"Submit Offer");if("View Item"===e)return ai(""),gi({success:!1,loading:!1}),ii(F?"Cancel Offer":"Submit Offer"),ti("0"),wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!1,message:""})),G(),void(null==Q||Q(!0));if(!Ti(li,De))return;if("Submit Offer"===e&&Ii){if(gi(Object.assign(Object.assign({},pi),{loading:!0})),ii("Confirmation"),Ie){let e=null;e=(null==Y?void 0:Y.providerType)===u.EMAIL?null===(i=null==Y?void 0:Y.provider)||void 0===i?void 0:i.provider:null==Y?void 0:Y.provider;if(await Ei(!1,e))await Li();else{const i=await b({currency:null==Ii?void 0:Ii.symbol,currencyContractAddress:Ii.network.wethAddress,marketPlaceContractAddress:null==Ii?void 0:Ii.secondaryMarketplaceContractAddress,provider:e});if(null==i?void 0:i.status){"success"===await Ei(!0,e)?await Li():(gi(Object.assign(Object.assign({},pi),{loading:!1})),ai(`You don't have enough approval or balance of\n ${li} ${null==Ii?void 0:Ii.symbol}\n to complete this purchase. Please try again or increase allowance.`))}else"Reject"===(null==i?void 0:i.message)?(gi(Object.assign(Object.assign({},pi),{loading:!1})),ai("Transaction has been cancelled by user")):(gi(Object.assign(Object.assign({},pi),{loading:!1})),ai("An error was encountered while processing your payment"))}}De&&await Li()}}catch(e){gi(Object.assign(Object.assign({},pi),{loading:!1})),ai((null==e?void 0:e.message)||"An error was encountered while processing your payment")}else bi(Object.assign(Object.assign({},fi),{conditions:!0}));else bi(Object.assign(Object.assign({},fi),{terms:!0}));else bi({conditions:!0,terms:!0});else q()}),[mi,ui,Ii,pi,fi,li,yi,oi,F,null==Y?void 0:Y.walletAddress,null==Y?void 0:Y.provider,null==Y?void 0:Y.providerType,De,Ie,G,Ei,Li,Ti,Pi,q,Q]),Ui=a((async()=>{if(null==ze?void 0:ze.chainID){gi(Object.assign(Object.assign({},pi),{loading:!0}));const e=await h(null==ze?void 0:ze.chainID,ke,Y.provider);ai(null==e?void 0:e.message),gi(Object.assign(Object.assign({},pi),{loading:!1}))}}),[ze,ke,Y.provider,pi]),Wi=a((async e=>{if(Ii){gi(Object.assign(Object.assign({},pi),{loading:!0}));const i=await O({price:+e,currencyContractAddress:null==Ii?void 0:Ii.contractAddress,provider:Y.provider});Q&&Q(!0),setTimeout((()=>{gi(Object.assign(Object.assign({},pi),{loading:!1})),ai(i.message),ji(!0)}),2e3)}}),[Ii,Y.provider,pi,Q]),Fi=a((e=>{let{value:i}=e.target;if(De){const e=parseFloat(i);Number.isNaN(e)||(i=Math.round(e).toString())}i.length<=(null!=B?B:6)&&ti(i),wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!1,message:""}))}),[B,De,yi]),Yi=a((e=>{ni(e.target.value),di(s(s()).add(I(e.target.value),"days").format("MMMM DD, YYYY hh:mm A"))}),[]),Bi=a((e=>{ci(e.target.checked),bi({terms:!1,conditions:!1})}),[]),_i=a((e=>{vi(e.target.checked),bi({terms:!1,conditions:!1})}),[vi,bi]),Hi=a((()=>{pi.loading||(J(),K&&"Confirmation"===ei&&!oi?(ai(""),gi({success:!1,loading:!1}),ti("0"),ii(F?"Cancel Offer":"Submit Offer"),wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!1,message:""})),K(),null==Q||Q(!0)):wi(Object.assign(Object.assign({},yi),{isSwap:!1,balanceCheck:!1,message:""})))}),[ei,F,yi,K,J,pi,oi,Q]);return e(A,{open:R,image:L,contractProgressMessage:fe,tokenDetails:{tokenImage:D((null==Ee?void 0:Ee.mediaSourceURL)||(null===(le=null==Ee?void 0:Ee.metadata)||void 0===le?void 0:le.image)||""),tokenName:(null===(te=null==Ee?void 0:Ee.metadata)||void 0===te?void 0:te.name)||"",tokenArtistName:Di||"",chainId:(null==ze?void 0:ze.chainID)||0,thumbnail:null===(re=null==Ee?void 0:Ee.metadata)||void 0===re?void 0:re.image},walletType:Y.walletType,breadCrumbs:Ce,selectedBreadCrumbs:ei,currencyData:(null==Ii?void 0:Ii.symbol)||"",duration:ri,durationList:je,price:li,totalPrice:{crypto:` ${j(null!=li?li:0)} ${null==Ii?void 0:Ii.symbol} `,usd:+y(p(+li,Number(null!==(ne=null==Me?void 0:Me.amount)&&void 0!==ne?ne:"0"),!0))},progress:pi,error:oi,listPricePercentage:T(null!==(ce=null===(ue=null===(de=null===(se=null==Ee?void 0:Ee.price)||void 0===se?void 0:se.buyNowPrice)||void 0===de?void 0:de[1])||void 0===ue?void 0:ue.value)&&void 0!==ce?ce:0,+li),policyCheck:ui,mediaCardAttributes:Object.assign(Object.assign({},$),{customThumbnail:(null==$?void 0:$.customThumbnail)||(null===(me=null==Ee?void 0:Ee.metadata)||void 0===me?void 0:me.image)}),termsCheck:mi,offerExpires:si,validateTerms:fi,validateMakeOffer:yi,symbol:(null==Ii?void 0:Ii.symbol)||"",currencyList:null!=Ze?Ze:[],isCancelOffer:F,isValidMakeOffer:hi,walletConnection:ki,isLoading:Ne||We||Ve||Le||Re,maxLength:B,termsURL:null!=_?_:"#",conditionOfBusinessURL:null!=H?H:"#",fiatCurrency:x.currency,buyNowPrice:"SALE_PENDING"===(null==Ee?void 0:Ee.status)&&(null===(pe=null===(ve=null==Ee?void 0:Ee.price)||void 0===ve?void 0:ve.buyNowPrice)||void 0===pe?void 0:pe.length)>0?null===(ge=null==Ee?void 0:Ee.price)||void 0===ge?void 0:ge.buyNowPrice:void 0,onClickConnectWallet:q,onChangePrice:Fi,onChangeDuration:Yi,onChangePolicy:Bi,onChangeTermsAndCondition:_i,onClickMakeOffer:xi,onClickSwap:Wi,onClickSwitchNetwork:Ui,onCloseModal:Hi})};export{R as default};