UNPKG

@mojito-inc/secondary-market

Version:

Mojito secondary market is the platform to purchase NFT.

2 lines (1 loc) 12.6 kB
"use strict";var l=require("react"),i=require("@mojito-inc/core-service"),e=require("moment"),o=require("../utils/getValidURL.utils.js"),t=require("../utils/getPrice.utils.js"),d=require("../utils/truncateDecimal.utils.js"),n=require("../utils/getTransferredStatus.utils.js"),v=require("../utils/getActivityStatus.utils.js"),u=require("../utils/getEventType.utils.js"),a=require("../utils/truncateAddress.utils.js"),r=require("../utils/getParseAddresses.js");exports.useWallet=(s,c,m)=>{var I,g;const{getActiveWalletsContent:y,getSupportedNetworks:p}=i.useConnectWallet(),{getAllInvoices:f,generateSecondaryInvoice:A,generatePrimaryInvoice:w,getFileSignedUrl:h,getMyInvoices:D}=i.useNFT(),[k,S]=l.useState(!1),[T,C]=l.useState(!1),[N,L]=l.useState([]),[b,E]=l.useState([]),[P,R]=l.useState(0),[W,q]=l.useState(0),[U,V]=l.useState(!1),[M,O]=l.useState(!1),[j,Y]=l.useState([]),[F,H]=l.useState(!1),_=l.useCallback((l=>null==j?void 0:j.filter((i=>i.name===l))),[j]),$=l.useCallback(((l,i)=>{var e;const o=(null==l?void 0:l.toLowerCase())===(null===(e=null==s?void 0:s.walletAddress)||void 0===e?void 0:e.toLowerCase());if(i&&o){if("OPEN_FOR_SALE"===i)return"List Item";if("SALE_PENDING"===i)return"Edit Listing"}return""}),[null==s?void 0:s.walletAddress]),x=l.useCallback((async()=>{var l;try{const i=null===(l=(await p({includeTestnets:!0,orgId:s.orgID})).data)||void 0===l?void 0:l.getSupportedNetworks;return Y(i),i}catch(l){return Y(null),[]}}),[s,p]),B=l.useCallback((async()=>{var l,i,e,d,n,v,u,m,I;try{L(null),R(0),S(!0),V(!1);const g=await y({orgID:s.orgID,filters:{search:null===(l=s.filters)||void 0===l?void 0:l.search,sort:null===(i=s.filters)||void 0===i?void 0:i.sort},refreshCache:s.refreshCache,walletAddress:null==s?void 0:s.walletAddress,networkId:null==s?void 0:s.networkId,nftContractAddress:(null==s?void 0:s.contractAddress)?r.default(null==s?void 0:s.contractAddress):void 0,currency:null==s?void 0:s.currency,itemFilter:null==s?void 0:s.itemFilter},{fetchPolicy:"no-cache"}),p=null===(d=null===(e=g.data)||void 0===e?void 0:e.getActiveWalletsContent)||void 0===d?void 0:d.tokens,f=null==p?void 0:p.map((l=>{var i,e,d,n,v,u,r,m,I,g,y,p,f,A,w,h,D,k,S,T,C,N,L,b,E,P,R,W,q,U,V;const M=$(null!==(i=l.owner)&&void 0!==i?i:"",null!==(e=l.status)&&void 0!==e?e:""),O=t.getPrice(M,null==l?void 0:l.price,null===(d=null==l?void 0:l.listedOrderInfo)||void 0===d?void 0:d.price),j=_(l.network);return{cardDetail:{networkId:null!==(v=null===(n=null==j?void 0:j[0])||void 0===n?void 0:n.id)&&void 0!==v?v:"",networkChainId:null!==(r=null===(u=null==j?void 0:j[0])||void 0===u?void 0:u.chainID)&&void 0!==r?r:0,tokenImage:o.getValidURL((null===(m=null==l?void 0:l.metadata)||void 0===m?void 0:m.image)||(null===(I=null==l?void 0:l.metadata)||void 0===I?void 0:I.animationURL)||(null==c?void 0:c.placeholderImage)),tokenName:null!==(y=null===(g=null==l?void 0:l.metadata)||void 0===g?void 0:g.name)&&void 0!==y?y:"",placeholderImage:null==c?void 0:c.placeholderImage,tokenSubtitle:null!==(f=null===(p=null==l?void 0:l.metadata)||void 0===p?void 0:p.description)&&void 0!==f?f:"",tokenId:"ethereum"===s.walletType?parseInt(null!==(A=null==l?void 0:l.id)&&void 0!==A?A:"0",10):l.id,contractAddress:null==l?void 0:l.contractAddress,id:null!==(w=null==l?void 0:l.nftTokenId)&&void 0!==w?w:"",buttonName:M,animationURL:null===(h=null==l?void 0:l.metadata)||void 0===h?void 0:h.animationURL,collectionName:(null==l?void 0:l.contractName)||`Collection ${a.truncateAddress(null==l?void 0:l.contractAddress)}`||"",collectionType:"ethereum"===s.walletType?"ERC721"===l.tokenType?"ERC-721":"ERC-1155":"SOLANA",cryptoPrice:null!==(S=null===(k=null===(D=null==O?void 0:O.price)||void 0===D?void 0:D[1])||void 0===k?void 0:k.value)&&void 0!==S?S:0,usdPrice:null!==(N=null===(C=null===(T=null==O?void 0:O.price)||void 0===T?void 0:T[0])||void 0===C?void 0:C.value)&&void 0!==N?N:0,priceLabel:null!==(b=null===(L=null==O?void 0:O.label)||void 0===L?void 0:L.toUpperCase())&&void 0!==b?b:"",cryptoLabel:"ethereum"===s.walletType?null!==(R=null===(P=null===(E=null==O?void 0:O.price)||void 0===E?void 0:E[1])||void 0===P?void 0:P.unit)&&void 0!==R?R:"ETH":"VIN",tokenOwnerAddress:null!==(W=null==l?void 0:l.owner)&&void 0!==W?W:"",downloadVideo:null===(q=null==l?void 0:l.metadata)||void 0===q?void 0:q.downloadVideo,video:null!==(V=null===(U=null==l?void 0:l.metadata)||void 0===U?void 0:U.video)&&void 0!==V?V:""}}}));return L(null!==(n=f)&&void 0!==n?n:[]),R(null!==(I=null===(m=null===(u=null===(v=null==g?void 0:g.data)||void 0===v?void 0:v.getActiveWalletsContent)||void 0===u?void 0:u.requestObj)||void 0===m?void 0:m.totalCount)&&void 0!==I?I:0),S(!1),f}catch(l){return S(!1),L(null),null}}),[null==c?void 0:c.placeholderImage,null==s?void 0:s.refreshCache,null===(I=s.filters)||void 0===I?void 0:I.search,null===(g=s.filters)||void 0===g?void 0:g.sort,null==s?void 0:s.networkId,null==s?void 0:s.currency,null==s?void 0:s.itemFilter,s.orgID,null==s?void 0:s.walletAddress,null==s?void 0:s.contractAddress,s.walletType,y,$,_]),G=l.useCallback(((l,i,e="base64")=>{if(!l)return;let o=document.createElement("a");o.href="pdf"===e?`${l}?alt=media`:`data:application/pdf;base64,${l}`,"base64"===e&&(o.download=i),document.body.appendChild(o),o.click(),document.body.removeChild(o),o=null}),[]),z=l.useCallback((async()=>{var l,i,e,o,t,d,n,v;try{if(null==m?void 0:m.isSecondary){const d=null===(t=(await A({invoiceID:null!==(l=null==m?void 0:m.invoiceID)&&void 0!==l?l:"",orderID:null!==(i=null==m?void 0:m.orderID)&&void 0!==i?i:"",activityName:null!==(e=null==m?void 0:m.activityName)&&void 0!==e?e:"",invoiceResType:null!==(o=null==m?void 0:m.invoiceResType)&&void 0!==o?o:""})).data)||void 0===t?void 0:t.generateSecondaryInvoice;return d&&G(d,`invoice-${null==m?void 0:m.activityName}.pdf`,"pdf"),d}const u=null===(v=(await w({invoiceID:null!==(d=null==m?void 0:m.invoiceID)&&void 0!==d?d:"",invoiceResType:null!==(n=null==m?void 0:m.invoiceResType)&&void 0!==n?n:""})).data)||void 0===v?void 0:v.generatePrimaryInvoice;return u&&G(u,`invoice-${null==m?void 0:m.activityName}.pdf`,"pdf"),u}catch(l){return[]}}),[m,G,A,w]),J=l.useCallback((async()=>{var l,i,t,a,r,m,I,g,y,p,A;try{if(E(null),C(!0),O(!1),x(),"MY_INVOICES"===(null==c?void 0:c.invoiceType)){const d=await D({limit:null==c?void 0:c.limit,offset:null==c?void 0:c.offset,returnAllStatuses:null==c?void 0:c.returnAllStatuses,filter:{listingID:null==c?void 0:c.listingId,dropID:null==c?void 0:c.dropId}},{fetchPolicy:"no-cache"}),n=null===(i=null===(l=null==d?void 0:d.data)||void 0===l?void 0:l.getMyInvoicesData)||void 0===i?void 0:i.data,u=null==n?void 0:n.map((l=>{var i,t,d,n,u,a,r,m,I,g,y,p,f,A,w,h,D,k,S,T,C,N,L,b,E,P,R,W,q,U,V,M,O,j,Y,F,H,_;return{date:e(null==l?void 0:l.invoiceCreatedAt).format("MM/DD/YYYY | hh:mm A"),activityName:(null===(u=null===(n=null===(d=null===(t=null===(i=null==l?void 0:l.items)||void 0===i?void 0:i[0])||void 0===t?void 0:t.nftDetails)||void 0===d?void 0:d[0])||void 0===n?void 0:n.tokenMetadata)||void 0===u?void 0:u.name)||(null===(a=null==l?void 0:l.items)||void 0===a?void 0:a[0].collectionItemTitle),OrderID:null==l?void 0:l.invoiceID,InvoiceID:null==l?void 0:l.invoiceID,TransactionHash:null===(m=null===(r=null==l?void 0:l.items)||void 0===r?void 0:r[0])||void 0===m?void 0:m.transactionHash,NetworkId:null===(y=null===(g=null===(I=null==l?void 0:l.items)||void 0===I?void 0:I[0].nftDetails)||void 0===g?void 0:g[0])||void 0===y?void 0:y.networkId,itemName:"Purchased",tokenId:"",placeholderImage:null==c?void 0:c.placeholderImage,listingImage:null===(f=null===(p=null==l?void 0:l.items)||void 0===p?void 0:p[0])||void 0===f?void 0:f.collectionItemImage,nftTokenId:null!==(k=null===(D=null===(h=null===(w=null===(A=null==l?void 0:l.items)||void 0===A?void 0:A[0])||void 0===w?void 0:w.nftDetails)||void 0===h?void 0:h[0])||void 0===D?void 0:D.nftTokenID)&&void 0!==k?k:"",contractAddress:null!==(L=null===(N=null===(C=null===(T=null===(S=null==l?void 0:l.items)||void 0===S?void 0:S[0])||void 0===T?void 0:T.nftDetails)||void 0===C?void 0:C[0])||void 0===N?void 0:N.contractAddress)&&void 0!==L?L:"",status:(null===(E=null===(b=null==l?void 0:l.items)||void 0===b?void 0:b[0])||void 0===E?void 0:E.transactionStatus)?v.getActivityStatus(null===(W=null===(R=null===(P=null==l?void 0:l.items)||void 0===P?void 0:P[0])||void 0===R?void 0:R.transactionStatus)||void 0===W?void 0:W.toString()):"",tokenImage:(null===(O=null===(M=null===(V=null===(U=null===(q=null==l?void 0:l.items)||void 0===q?void 0:q[0])||void 0===U?void 0:U.nftDetails)||void 0===V?void 0:V[0])||void 0===M?void 0:M.tokenMetadata)||void 0===O?void 0:O.image)?o.getValidURL(null===(_=null===(H=null===(F=null===(Y=null===(j=null==l?void 0:l.items)||void 0===j?void 0:j[0])||void 0===Y?void 0:Y.nftDetails)||void 0===F?void 0:F[0])||void 0===H?void 0:H.tokenMetadata)||void 0===_?void 0:_.image):null==c?void 0:c.placeholderImage,price:{value:0,unit:"ethereum"===s.walletType?"ETH":"VIN",usdValue:"0"},activity:""}}));return E(null!==(t=u)&&void 0!==t?t:[]),q(null!==(m=null===(r=null===(a=null==d?void 0:d.data)||void 0===a?void 0:a.getMyInvoicesData)||void 0===r?void 0:r.TotalCount)&&void 0!==m?m:0),C(!1),u}const w=await f({orgID:null==c?void 0:c.orgId,filter:"LATEST_TO_OLDEST",limit:null==c?void 0:c.limit,offset:null==c?void 0:c.offset,status:null==c?void 0:c.filterByStatus,fiatCurrency:null==s?void 0:s.currency},{fetchPolicy:"no-cache"}),h=null===(g=null===(I=null==w?void 0:w.data)||void 0===I?void 0:I.getAllInvoices)||void 0===g?void 0:g.data,k=null==h?void 0:h.map((l=>{var i,t,a,r,m,I,g,y,p,f,A;const w=(null===(i=l.fromWalletAddress)||void 0===i?void 0:i.toLowerCase())===(null===(t=null==s?void 0:s.walletAddress)||void 0===t?void 0:t.toLowerCase()),h=(null===(a=l.toWalletAddress)||void 0===a?void 0:a.toLowerCase())===(null===(r=null==s?void 0:s.walletAddress)||void 0===r?void 0:r.toLowerCase());return{date:e(null==l?void 0:l.createdAt).format("MM/DD/YYYY | hh:mm A"),activityName:(null==l?void 0:l.tokenName)||(null==l?void 0:l.itemName),OrderID:null==l?void 0:l.id,InvoiceID:null==l?void 0:l.invoiceID,TransactionHash:null==l?void 0:l.transactionHash,NetworkId:null==l?void 0:l.networkID,itemName:(null==l?void 0:l.eventType)?n.getTransferedStatusName(null===(m=null==l?void 0:l.eventType)||void 0===m?void 0:m.toString()):"Purchased",tokenId:null==l?void 0:l.onChainTokenID,placeholderImage:null==c?void 0:c.placeholderImage,listingImage:void 0,nftTokenId:null!==(I=null==l?void 0:l.itemID)&&void 0!==I?I:"",contractAddress:null!==(g=null==l?void 0:l.contractAddress)&&void 0!==g?g:"",status:(null==l?void 0:l.transactionStatus)?v.getActivityStatus(null===(y=null==l?void 0:l.transactionStatus)||void 0===y?void 0:y.toString()):"",tokenImage:(null==l?void 0:l.image)?o.getValidURL(null==l?void 0:l.image):null==c?void 0:c.placeholderImage,price:{value:null!==(p=null==l?void 0:l.PriceCrypto)&&void 0!==p?p:0,unit:"ethereum"===s.walletType?"ETH":"VIN",usdValue:(null==l?void 0:l.usdItemPrice)?null===(f=d.truncateDecimal(null==l?void 0:l.usdItemPrice))||void 0===f?void 0:f.toString():"0"},activity:(null==l?void 0:l.eventType)?u.getEventTypeName(null===(A=null==l?void 0:l.eventType)||void 0===A?void 0:A.toString(),w,h):"Sold_Item",isSecondary:null==l?void 0:l.isSecondary,eventType:null==l?void 0:l.eventType,fromWalletAddress:null==l?void 0:l.fromWalletAddress,toWalletAddress:null==l?void 0:l.toWalletAddress}}));return E(null!=k?k:[]),q(null!==(A=null===(p=null===(y=null==w?void 0:w.data)||void 0===y?void 0:y.getAllInvoices)||void 0===p?void 0:p.count)&&void 0!==A?A:0),C(!1),k}catch(l){return C(!1),E(null),null}}),[c,s.walletType,s.walletAddress,null==s?void 0:s.currency,x,D,f]),K=l.useCallback((async(l,i,e)=>{var o;try{H(!0);const t=await h({urlInput:{url:null!=l?l:"",contractAddress:null!=i?i:"",tokenID:null!=e?e:""}}),d=null===(o=null==t?void 0:t.data)||void 0===o?void 0:o.getFileSignedURL;return H(!1),d}catch(l){return H(!1),null}}),[h]),Q=l.useCallback((()=>{V(!0)}),[]),X=l.useCallback((()=>{O(!0)}),[]);return l.useEffect((()=>{U&&(null==s?void 0:s.walletAddress)&&(null==s?void 0:s.networkId)&&(B(),V(!1))}),[U,null==s?void 0:s.walletAddress,null==s?void 0:s.networkId,B]),l.useEffect((()=>{M?(J(),O(!1)):(null==s?void 0:s.walletAddress)||(E(null),C(!1),O(!1))}),[M,J,null==s?void 0:s.walletAddress]),l.useEffect((()=>{(null==m?void 0:m.invoiceID)&&z()}),[m,z]),{activeWalletsLoading:k,activeWalletsData:N,activityLoading:T,totalActivity:W,activityData:b,networkData:j,totalActiveWallets:P,fetchActiveWalletItems:Q,fetchActivityItems:X,downloadUrlLoading:F,getDownloadUrl:K}};