@mojito-inc/secondary-market
Version:
Mojito secondary market is the platform to purchase NFT.
2 lines (1 loc) • 15.4 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("react"),r=require("@mojito-inc/core-service"),l=require("../hooks/useTokenDetails.js"),t=require("../interface/index.js");require("@mui/material/Stack"),require("@mui/material/Modal"),require("@mui/material/Divider"),require("@mui/material/Grid"),require("@mui/material/Button"),require("@mui/material/Typography"),require("@mui/material/Box"),require("@mui/material/styles"),require("html-react-parser"),require("../component/VideoWithImageCard.js"),require("@mui/material/Tooltip"),require("@mui/icons-material/InfoOutlined"),require("@mui/icons-material/KeyboardArrowDown"),require("@mui/material/Select"),require("@mui/material/TextField"),require("@mui/material/MenuItem"),require("@mui/icons-material/ImportExport"),require("@mui/icons-material/Warning"),require("@mui/icons-material/CheckCircleOutline"),require("@mui/icons-material/ErrorOutline"),require("@mui/material/Checkbox"),require("@mui/icons-material/ContentCopy"),require("@mui/icons-material/KeyboardArrowUp"),require("@mui/icons-material/HelpOutline"),require("@mui/material/IconButton"),require("@mui/icons-material/FavoriteBorder"),require("@mui/icons-material/Favorite"),require("@mui/icons-material/FileCopyOutlined"),require("moment"),require("@mui/material/Pagination"),require("@mui/material/PaginationItem"),require("@mui/material"),require("@mui/material/Table"),require("@mui/material/TableCell"),require("@mui/material/TableHead"),require("@mui/material/TableBody"),require("@mui/material/TableRow"),require("@mui/material/TableContainer"),require("@mui/icons-material/OpenInNew"),require("@mui/material/Skeleton"),require("@mui/material/CardActions"),require("@mui/material/Card"),require("@mui/material/CardContent"),require("@mui/icons-material/RemoveCircleOutline"),require("@mui/icons-material/SellOutlined"),require("@mui/icons-material/AttachMoneyOutlined"),require("@mui/icons-material/Send"),require("@mui/icons-material/NewReleases"),require("@mui/icons-material/CancelScheduleSend"),require("@mui/icons-material/HourglassDisabledOutlined"),require("@mui/icons-material/CallMissedOutlined"),require("@mui/icons-material/MoveToInboxOutlined"),require("@mui/icons-material/CheckCircleOutlineOutlined"),require("@mui/icons-material/BorderColorOutlined"),require("@mui/icons-material/Twitter"),require("@mui/icons-material/MoreVert");var n=require("../constant/index.js");require("@mui/material/useMediaQuery"),require("@mui/material/CircularProgress"),require("react-player"),require("@mui/icons-material/Pause"),require("@mui/icons-material/PlayArrow"),require("../_virtual/_tslib.js"),require("@mui/material/Tab"),require("@mui/material/Tabs"),require("@mui/material/Menu"),require("@mui/material/ListItem"),require("@mui/material/List"),require("@mui/icons-material/Close"),require("@mui/material/ListItemText"),require("@mui/icons-material/CheckRounded"),require("@mui/icons-material/FiberManualRecord"),require("@mui/icons-material/Refresh"),require("../component/RenderIf.js"),require("@mui/icons-material/AccountBalanceWallet"),require("@mui/material/Breadcrumbs"),require("@mui/icons-material/ArrowForward");var o=require("../layout/ProductDetailPageLayout.js");require("@mui/material/InputAdornment"),require("@mui/icons-material/Search"),require("@mui/icons-material/FilterList"),require("../provider/CollectionFilterProvider.js"),require("@mui/material/Accordion"),require("@mui/material/AccordionSummary"),require("@mui/material/AccordionDetails"),require("@mui/material/FormControlLabel"),require("@mui/icons-material/ExitToAppOutlined");var a=require("../hooks/useProvenance.js"),u=require("./ListItemContainer.js"),s=require("./AcceptAndRejectOffer.js"),d=require("./BuyNow.js"),c=require("./MakeOfferContainer.js"),m=require("../utils/getPrice.utils.js"),v=require("../hooks/useTokenOffer.js");exports.default=({config:C,tokenDetails:f,Image:k,walletDetails:I,priceInputRange:q,showSpecialTraits:p=!1,videoAttributes:g,mediaCardAttributes:T,onConnectWallet:y,onClickDisconnectWallet:A,onRefetchBalance:w,onViewItem:O,onBackToMarketplace:D,onHandleApiSessionExpired:b})=>{var h,M,E,R,S;const{sessionStatus:L}=r.useAuth(),[P,B]=i.useState(!1),[j,N]=i.useState(!1),[F,U]=i.useState(!1),[x,_]=i.useState(!1),[W,H]=i.useState(!1),[V,G]=i.useState(!1),[K,Q]=i.useState(),[$,Y]=i.useState(""),[z,J]=i.useState(!1),X=i.useMemo((()=>10),[]),[Z,ee]=i.useState(0),ie=i.useMemo((()=>3),[]),[re,le]=i.useState(0),[te,ne]=i.useState(!1),[oe,ae]=i.useState({orderId:"",isCancelOffer:!1}),ue=i.useMemo((()=>"solana"===(null==I?void 0:I.walletType)),[I.walletType]),se=i.useMemo((()=>{var e;return null===(e=null==I?void 0:I.networkDetails)||void 0===e?void 0:e.chainID}),[null===(h=null==I?void 0:I.networkDetails)||void 0===h?void 0:h.chainID]),de=i.useMemo((()=>{var e;return{orgId:C.orgId,contractAddress:f.contractAddress,onChainTokenID:f.onChainTokenID,cryptoCurrencyCode:C.cryptoCurrency,currency:null!==(e=C.fiatCurrency)&&void 0!==e?e:t.Currency.USD}}),[C.cryptoCurrency,C.fiatCurrency,C.orgId,f.contractAddress,f.onChainTokenID]),{tokenData:ce,networkData:me,detailsLoading:ve,isNetworkLoading:Ce,isPriceLoading:fe,isError:ke,reFetchAPI:Ie}=l.useTokenDetails(de,!0),qe=i.useMemo((()=>{var e,i,r,l;return{orgId:C.orgId,contractAddress:f.contractAddress,itemId:null!==(e=null==ce?void 0:ce.nftTokenId)&&void 0!==e?e:"",onChainTokenID:f.onChainTokenID,networkId:null!==(i=null==ce?void 0:ce.networkID)&&void 0!==i?i:"",ownerAddress:null!==(r=null==ce?void 0:ce.tokenOwnerAddress)&&void 0!==r?r:"",limit:X,offset:Z,currency:null!==(l=C.fiatCurrency)&&void 0!==l?l:t.Currency.USD,showSpecialTraits:p&&ue,connectedChainId:se,customRPCUrl:C.customRPCUrl}}),[C,f,se,ce,ue,X,Z,p]),{provenanceData:pe,traitsData:ge,totalProvenanceData:Te,provenanceLoading:ye,traitsLoading:Ae,provenanceRefetch:we,traitsRefetch:Oe}=a.useProvenance(qe),{offerData:De,offerLoading:be,offerRefetch:he}=v.useTokenOffer(null==C?void 0:C.orgId,null!==(M=null==ce?void 0:ce.nftTokenId)&&void 0!==M?M:"",!!(null==I?void 0:I.walletAddress),null==C?void 0:C.fiatCurrency),{addNFTToFavorite:Me,removeNFTFromFavorite:Ee}=r.useNFT(),Re=i.useMemo((()=>null==f?void 0:f.contractAddress),[f]),Se=i.useMemo((()=>null==f?void 0:f.onChainTokenID),[f]),Le=i.useMemo((()=>C.fiatCurrency),[C.fiatCurrency]);i.useEffect((()=>{(Re&&Se||Le)&&(Ie(),he(),Oe(),we())}),[Re,Se,Le,he,Ie,Oe,we]),i.useEffect((()=>{(null==I?void 0:I.walletAddress)&&he()}),[null==I?void 0:I.walletAddress,he]),i.useEffect((()=>{te&&(ne(!1),we())}),[te,we]),i.useEffect((()=>{"Expired"===L&&(B(!1),_(!1),B(!1),U(!1),null==b||b())}),[b,L]);const Pe=i.useMemo((()=>{const e=null==me?void 0:me.filter((e=>e.id===(null==ce?void 0:ce.networkID)));return null==e?void 0:e[0]}),[me,ce]),Be=i.useMemo((()=>{var e,i;return(null===(e=null==ce?void 0:ce.tokenOwnerAddress)||void 0===e?void 0:e.toLowerCase())===(null===(i=null==I?void 0:I.walletAddress)||void 0===i?void 0:i.toLowerCase())}),[ce,null==I?void 0:I.walletAddress]),je=i.useMemo((()=>(null==De?void 0:De.filter((e=>"PENDING"===(null==e?void 0:e.offerStatus)&&(null==I?void 0:I.walletAddress))))||[]),[De,I.walletAddress]),Ne=i.useMemo((()=>(null==ce?void 0:ce.status)&&Be?"OPEN_FOR_SALE"===(null==ce?void 0:ce.status)?n.ButtonType.LIST_ITEM:"SALE_PENDING"===(null==ce?void 0:ce.status)?n.ButtonType.EDIT_LIST_ITEM:n.ButtonType.ENQUIRE:"OPEN_FOR_SALE"!==(null==ce?void 0:ce.status)&&"SALE_PENDING"!==(null==ce?void 0:ce.status)||Be?n.ButtonType.ENQUIRE:0===(null==je?void 0:je.length)&&(null==ce?void 0:ce.isMakeOfferEnabled)?n.ButtonType.MAKE_OFFER:n.ButtonType.CANCEL),[ce,Be,je]),Fe=i.useMemo((()=>"SALE_PENDING"===(null==ce?void 0:ce.status)&&!Be&&(null==ce?void 0:ce.isBuyNowEnabled)?n.ButtonType.BUY_NOW:n.ButtonType.ENQUIRE),[ce,Be]),Ue=i.useMemo((()=>Fe===n.ButtonType.BUY_NOW?"Buy Now":Ne===n.ButtonType.EDIT_LIST_ITEM?"Edit Listing":Ne===n.ButtonType.MAKE_OFFER?"Make Offer":"List Item"),[Fe,Ne]),xe=i.useMemo((()=>{var e;if(null==ce?void 0:ce.price){const{price:i}=m.getPrice(Ue,null==ce?void 0:ce.price,null===(e=null==ce?void 0:ce.listedOrderInfo)||void 0===e?void 0:e.price);return i}return[]}),[ce,Ue]),_e=i.useMemo((()=>{var e,i,r,l,t,n,o,a,u,s,d,c,m,v,f,k,I,q,p,g,T,y,A;return{url:(null==ce?void 0:ce.mediaSourceURL)||(null===(e=null==ce?void 0:ce.metadata)||void 0===e?void 0:e.image)||"",thumbnail:null!==(r=null===(i=null==ce?void 0:ce.metadata)||void 0===i?void 0:i.image)&&void 0!==r?r:"",collectionName:null!==(t=null===(l=null==ce?void 0:ce.artist)||void 0===l?void 0:l.artistName)&&void 0!==t?t:"",tokenName:null!==(o=null===(n=null==ce?void 0:ce.metadata)||void 0===n?void 0:n.name)&&void 0!==o?o:"",owner:null!==(a=null==ce?void 0:ce.tokenOwnerAddress)&&void 0!==a?a:"",cryptoPrice:(null===(u=null==xe?void 0:xe[1])||void 0===u?void 0:u.value)?`${null===(s=null==xe?void 0:xe[1])||void 0===s?void 0:s.value} ${null===(d=null==xe?void 0:xe[1])||void 0===d?void 0:d.unit}`:"",usdPrice:(null===(c=null==xe?void 0:xe[0])||void 0===c?void 0:c.value)?`${null===(m=null==xe?void 0:xe[0])||void 0===m?void 0:m.value} ${null!==(v=C.fiatCurrency)&&void 0!==v?v:"USD"}`:"",networkName:null!==(f=null==ce?void 0:ce.network)&&void 0!==f?f:"",tokenType:null!==(k=null==ce?void 0:ce.tokenType)&&void 0!==k?k:"",contractAddress:null!==(I=null==ce?void 0:ce.contractAddress)&&void 0!==I?I:"",tokenId:null!==(p=null===(q=null==ce?void 0:ce.tokenId)||void 0===q?void 0:q.toString())&&void 0!==p?p:"",chainId:Number(null==Pe?void 0:Pe.chainID),metaDataURL:null!==(g=null==ce?void 0:ce.tokenURI)&&void 0!==g?g:"",description:null!==(y=null===(T=null==ce?void 0:ce.metadata)||void 0===T?void 0:T.description)&&void 0!==y?y:"",edition:null!==(A=null==ce?void 0:ce.editions)&&void 0!==A?A:0}}),[ce,xe,Pe,C.fiatCurrency]),We=i.useMemo((()=>{if(ue){const e=null==ge?void 0:ge.find((e=>{var i;return"winery"===(null===(i=e.title)||void 0===i?void 0:i.toLowerCase())}));return Object.assign(Object.assign({},_e),{collectionName:(null==e?void 0:e.description)?null==e?void 0:e.description:""})}return _e}),[_e,ue,ge]),He=i.useCallback((e=>{Q(e),U(!0),G(!1)}),[]),Ve=i.useCallback((async e=>{(null==I?void 0:I.walletAddress)?(ae({orderId:e,isCancelOffer:!0}),N(!0)):y()}),[null==I?void 0:I.walletAddress,y]),Ge=i.useCallback((e=>{(null==I?void 0:I.walletAddress)?(Q(e),U(!0),G(!0)):y()}),[null==I?void 0:I.walletAddress,y]),Ke=i.useCallback((e=>{(null==I?void 0:I.walletAddress)?"Buy Now"===e?_(!0):("List Item"===e||"Edit Listing"===e)&&(H(!1),B(!0)):y()}),[null==I?void 0:I.walletAddress,y]),Qe=i.useCallback(((e,i)=>{(null==I?void 0:I.walletAddress)?"Make Offer"===e?(ae({orderId:"",isCancelOffer:!1}),N(!0)):"Remove Listing"===e?(H(!0),B(!0)):"Cancel Offer"===e&&Ve(i):y()}),[null==I?void 0:I.walletAddress,y,Ve]),$e=i.useCallback((async()=>{try{ce&&(null==ce?void 0:ce.isFavorite)?(J(!0),await Ee({orgID:C.orgId,tokenId:ce.nftTokenId}),Ie(),J(!1)):ce&&(J(!0),await Me({orgID:C.orgId,tokenId:ce.nftTokenId}),Ie(),J(!1))}catch(e){J(!1),Y((null==e?void 0:e.message)||"Something went wrong! try again later")}}),[C,ce,Ee,Me,Ie]),Ye=i.useCallback((()=>{B(!1)}),[]),ze=i.useCallback((()=>{U(!1)}),[]),Je=i.useCallback((()=>{N(!1)}),[]),Xe=i.useCallback((()=>{_(!1)}),[]),Ze=i.useCallback((()=>{y(),_(!1)}),[y]),ei=i.useCallback((()=>{le(0),ee(0),Je(),Ye(),ze(),Xe(),Ie(),he(),we()}),[we,Je,Ye,ze,Xe,Ie,he]),ii=i.useCallback((()=>{ei(),O&&O()}),[ei,O]),ri=i.useCallback((()=>{ei(),D&&D()}),[ei,D]),li=i.useCallback((e=>{ne(!0),ee(e-1)}),[ee]),ti=i.useCallback((e=>{le(e-1)}),[]),ni=i.useCallback((()=>{ei()}),[ei]),oi=i.useMemo((()=>{var e;return null!==(e=null==De?void 0:De.slice(re*ie,re*ie+ie))&&void 0!==e?e:[]}),[De,re,ie]),ai=i.useMemo((()=>{var e,i;const r=(null!==(e=null==De?void 0:De.length)&&void 0!==e?e:0)/ie,l=Math.floor(r);return 0===(null!==(i=null==De?void 0:De.length)&&void 0!==i?i:0)%ie?l:l+1}),[De,ie]);return e.jsxs(e.Fragment,{children:[e.jsx(o.default,{tokenData:We,isError:ke,provenanceLoading:ye,provenanceData:null!=pe?pe:[],totalProvenanceData:Te,provenanceOffset:Z,onHandleProvenancePagination:li,offersOffset:re,totalOffersPage:ai,totalOffers:null!==(E=null==je?void 0:je.length)&&void 0!==E?E:0,onHandleOffersPagination:ti,traitsList:null!=ge?ge:[],offerList:(null==I?void 0:I.walletAddress)&&(null==oi?void 0:oi.length)>0?oi:[],fiatCurrency:C.fiatCurrency,button:{isBuyNow:Fe===n.ButtonType.BUY_NOW,isEditListing:Ne===n.ButtonType.EDIT_LIST_ITEM,isListItem:Ne===n.ButtonType.LIST_ITEM,isMakeOffer:Ne===n.ButtonType.MAKE_OFFER},walletAddress:null==I?void 0:I.walletAddress,walletType:null==I?void 0:I.walletType,isFavorite:(null==ce?void 0:ce.isFavorite)||!1,favoriteLoading:z,loaderImage:k.loader,placeHolderImage:k.placeHolderImage,error:$,isLoading:ve||be||Ae||Ce||fe,showFavorite:null===(R=null==C?void 0:C.showFavorite)||void 0===R||R,videoAttributes:g,onClickAcceptOffer:He,onClickCancelOffer:Ve,onClickRejectOffer:Ge,onClickPrimary:Ke,onClickSecondary:Qe,onClickFavorite:$e}),ce&&e.jsxs(e.Fragment,{children:[e.jsx(u.default,{open:P,image:k,customRPCUrl:null==C?void 0:C.customRPCUrl,config:Object.assign(Object.assign({},C),{currency:C.fiatCurrency}),tokenDetails:{onChainTokenID:String(null==ce?void 0:ce.tokenId),contractAddress:null==ce?void 0:ce.contractAddress,itemId:null==ce?void 0:ce.nftTokenId},isRemoveListing:W,tokenDetailsData:ce,walletDetails:I,priceInputRange:q,mediaCardAttributes:T,onClickViewItem:ii,onClickBackToMarketPlace:ni,onCloseModal:Ye,onConnectWallet:y,onHandleApiSessionExpired:b,onRefetchBalance:w}),e.jsx(s.default,{open:F,customRPCUrl:null==C?void 0:C.customRPCUrl,config:Object.assign(Object.assign({},C),{currency:C.fiatCurrency}),image:k,tokenDetails:{onChainTokenID:String(null==ce?void 0:ce.tokenId),contractAddress:null==ce?void 0:ce.contractAddress,itemId:null==ce?void 0:ce.nftTokenId},orderId:(null==K?void 0:K.id)||"",isRejectOffer:V,tokenDetailsData:ce,mediaCardAttributes:T,walletDetails:I,isPDP:!0,onClickViewItem:ii,onClickBackToMarketPlace:ri,onConnectWallet:y,onCloseModal:ze,onHandleApiSessionExpired:b,onRefetchBalance:w}),e.jsx(c.default,{open:j,config:Object.assign(Object.assign({},C),{currency:C.fiatCurrency}),customRPCUrl:null==C?void 0:C.customRPCUrl,image:k,tokenDetails:{onChainTokenID:String(null==ce?void 0:ce.tokenId),contractAddress:null==ce?void 0:ce.contractAddress,itemId:null==ce?void 0:ce.nftTokenId},tokenDetailsData:ce,mediaCardAttributes:T,isCancelOffer:oe.isCancelOffer,walletDetails:I,priceInputRange:q,onClickViewItem:ii,onClickBackToMarketPlace:ri,onRefetchBalance:w,onConnectWallet:y,onCloseModal:Je,onHandleApiSessionExpired:b,termsURL:C.termsURL,conditionOfBusinessURL:C.conditionOfBusinessURL}),e.jsx(d.default,{open:x,config:Object.assign(Object.assign({},C),{currency:C.fiatCurrency,customRPCUrl:null==C?void 0:C.customRPCUrl}),image:k,tokenDetails:{onChainTokenID:String(null==ce?void 0:ce.tokenId),contractAddress:null==ce?void 0:ce.contractAddress,itemId:null==ce?void 0:ce.nftTokenId},mediaCardAttributes:Object.assign(Object.assign({},T),{customThumbnail:(null==T?void 0:T.customThumbnail)||(null===(S=null==ce?void 0:ce.metadata)||void 0===S?void 0:S.image)}),tokenDetailsData:ce,walletDetails:I,termsURL:C.termsURL,conditionOfBusinessURL:C.conditionOfBusinessURL,onClickViewItem:ii,onClickBackToMarketPlace:ri,onClickConnectWallet:Ze,onClickDisconnectWallet:A,onCloseModal:Xe,onHandleApiSessionExpired:b,onRefetchBalance:w})]})]})};