UNPKG

@mojito-inc/secondary-market

Version:

Mojito secondary market is the platform to purchase NFT.

2 lines (1 loc) 1.67 kB
import{useState as r,useCallback as n,useEffect as t}from"react";import{useNFT as o,useConversion as e,useConnectWallet as c}from"@mojito-inc/core-service";const a=(a,i,u)=>{const{getNFTDetails:l}=o(),{getConversionRate:d}=e(),{getSupportedNetworks:s}=c(),[v,y]=r(),[g,C]=r([]),[p,D]=r(),[I,h]=r(!1),[k,m]=r(!1),[w,N]=r(!1),[f,S]=r(!1),[T,A]=r(!1),F=n((()=>{A(!1),h(!0),m(!0)}),[]),L=n((async()=>{var r;if(u&&!i)return h(!1),y(u),u;try{A(!1);const n=await l({orgId:a.orgId,onChainTokenID:a.onChainTokenID,contractAddress:a.contractAddress,currency:(null==a?void 0:a.currency)||"USD"},{fetchPolicy:"no-cache"}),t=null===(r=null==n?void 0:n.data)||void 0===r?void 0:r.getNFTDetails;return y(t),h(!1),t}catch(r){return h(!1),y(null),A(!0),null}}),[a,u,i,l]);return t((()=>{k&&(m(!1),L())}),[k,L]),t((()=>{(async()=>{var r;try{A(!1),N(!0);const n=null===(r=(await s({includeTestnets:!0,orgId:a.orgId})).data)||void 0===r?void 0:r.getSupportedNetworks;return C(n),N(!1),n}catch(r){return N(!1),C(null),A(!0),[]}})()}),[a.orgId,s]),t((()=>{(async()=>{var r,n,t,o;try{A(!1),S(!0);const e=await d({fromCurrecny:a.cryptoCurrencyCode||"VIN",toCurrency:a.currency||"USD"}),c=null===(r=null==e?void 0:e.data)||void 0===r?void 0:r.getConversionRate;return D({amount:(null!==(n=null==c?void 0:c.rate)&&void 0!==n?n:0).toString(),base:null!==(t=null==c?void 0:c.base)&&void 0!==t?t:"",currency:null!==(o=null==c?void 0:c.currency)&&void 0!==o?o:""}),S(!1),c}catch(r){return S(!1),D(null),A(!0),null}})()}),[a.cryptoCurrencyCode,a.currency,d]),{tokenData:v,networkData:g,usdData:p,detailsLoading:I,isNetworkLoading:w,isPriceLoading:f,isError:T,reFetchAPI:F}};export{a as useTokenDetails};