@dcl/shop 0.1.0-28716868442.commit-8bfb3b0 → 0.1.0-28747559789.commit-b08a3f4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/assets/{Assets-nmQB2810.js → Assets-BCLCAKkG.js} +1 -1
  2. package/assets/{Cart-CVq8ErN4.js → Cart-D_uUaPeS.js} +1 -1
  3. package/assets/{Collection-DrWaGsbD.js → Collection-Vt78ZVWj.js} +1 -1
  4. package/assets/{Creator-CODX4HY-.js → Creator-DSADkLM8.js} +1 -1
  5. package/assets/{ExchangeController-DGYlS1u1.js → ExchangeController-CxWGt4bg.js} +1 -1
  6. package/assets/{GetCredits-BJ-vtPKx.js → GetCredits-BL6P_bTG.js} +2 -2
  7. package/assets/{HelpersUtil-Cs7A9lff.js → HelpersUtil-CEkVbiDE.js} +1 -1
  8. package/assets/{ImportListings-DWEJuGBQ.js → ImportListings-CeBNGMqt.js} +1 -1
  9. package/assets/{ItemDetail-CLZiYPr_.js → ItemDetail--nBe93p1.js} +1 -1
  10. package/assets/{Market-C5YZkU0k.js → Market-CJzihvOn.js} +1 -1
  11. package/assets/{MyAssets-DiQ1f-Nx.js → MyAssets-DKAkMokI.js} +1 -1
  12. package/assets/{MyFavorites-D2neF-WT.js → MyFavorites-CzISOTRJ.js} +1 -1
  13. package/assets/{MyPurchases-CX-sT4T9.js → MyPurchases-BLO3SjFm.js} +1 -1
  14. package/assets/{RealCheckout-DVYTPQMi.js → RealCheckout-Bybyt3-i.js} +1 -1
  15. package/assets/{Success-Dty0MEac.js → Success-CagRAQUd.js} +1 -1
  16. package/assets/{SwapController-CTsLqo0R.js → SwapController-tAVuWRKF.js} +1 -1
  17. package/assets/{TradeService-Co6yXz1n.js → TradeService-DZbYERow.js} +1 -1
  18. package/assets/{W3MFrameProviderSingleton-DBf03HGk.js → W3MFrameProviderSingleton-DWW0KqqF.js} +3 -3
  19. package/assets/{WebCryptoP256-BMVi41Tf.js → WebCryptoP256-24nnd0cw.js} +1 -1
  20. package/assets/{basic-BKlH1yZE.js → basic-CtWu9k1f.js} +1 -1
  21. package/assets/{biconomy-BuC8Y20q.js → biconomy-Bxhd55H7.js} +1 -1
  22. package/assets/{buy-qVYsiH8c.js → buy-Fa44beN-.js} +1 -1
  23. package/assets/{buy-gasless-EwLKJESl.js → buy-gasless-C_Lvd8qQ.js} +1 -1
  24. package/assets/{ccip-BhXlCEl_.js → ccip-BYFsrFZk.js} +1 -1
  25. package/assets/{ccip-BXAlyEXK.js → ccip-Dm4_TaKT.js} +1 -1
  26. package/assets/{collection-yK7CsBpq.js → collection-DOkBn0OO.js} +1 -1
  27. package/assets/{controller-D31V5T7x.js → controller-Ba4SKPnr.js} +2 -2
  28. package/assets/{core-HiY9JG8Q.js → core-CVWbI_Qz.js} +4 -4
  29. package/assets/{custom-CNeK1SBe.js → custom-3CDpAjgV.js} +1 -1
  30. package/assets/{data-capture-BGCV8f_8.js → data-capture-BAycZH-f.js} +1 -1
  31. package/assets/{decimals-eyiqtEAM.js → decimals-CBRo6r_O.js} +1 -1
  32. package/assets/decimals-CFIuBn4O.js +1 -0
  33. package/assets/{detectExtension-HGgsLFYa.js → detectExtension-cxPRDE5L.js} +1 -1
  34. package/assets/{email-D3mSaTDc.js → email-BeMaJ8IG.js} +1 -1
  35. package/assets/{embedded-wallet-BIpOn63k.js → embedded-wallet-BrSWVEq_.js} +1 -1
  36. package/assets/{engine-Cp4bGvGY.js → engine-1nOaGybU.js} +1 -1
  37. package/assets/{estimate-l1-fee-DqCr-VRj.js → estimate-l1-fee-tu-8MKck.js} +1 -1
  38. package/assets/{eth_estimateGas-Btj3BdU3.js → eth_estimateGas-BPzcx4wB.js} +1 -1
  39. package/assets/{eth_getStorageAt-cAsXEzwb.js → eth_getStorageAt-DJEACI1v.js} +1 -1
  40. package/assets/{eth_getTransactionCount-9mRngMvR.js → eth_getTransactionCount-LgewymWn.js} +1 -1
  41. package/assets/{extractIPFS-Cos3MMqA.js → extractIPFS-kdthyh93.js} +1 -1
  42. package/assets/{features-CS9ITEyv.js → features-CghtI6H3.js} +1 -1
  43. package/assets/{fetchTokenMetadata--27nDLvT.js → fetchTokenMetadata-C3MdOGqH.js} +2 -2
  44. package/assets/{get-ecosystem-wallet-info-DsGpr1v9.js → get-ecosystem-wallet-info-Cf9SKYH0.js} +1 -1
  45. package/assets/{getBalance-C1EIeWK3.js → getBalance-C6ElSM3E.js} +1 -1
  46. package/assets/{getInstalledModules-CSy_anIJ.js → getInstalledModules-rtLcGCot.js} +1 -1
  47. package/assets/{getNFT-Biv4Mkbw.js → getNFT-BhnAi9U5.js} +1 -1
  48. package/assets/{getNFT-C3k4-I_M.js → getNFT-q8LrHpyz.js} +2 -2
  49. package/assets/{hashTypedData-DCkFFbNQ.js → hashTypedData-BPV6XW1Q.js} +1 -1
  50. package/assets/{hashTypedData-D-eX1daT.js → hashTypedData-Bc5YF8Mi.js} +1 -1
  51. package/assets/{import-DjExR-_c.js → import-CM2Acb8u.js} +1 -1
  52. package/assets/{in-app-wallet-calls-BsZ7t_xW.js → in-app-wallet-calls-Dy-UrhW6.js} +1 -1
  53. package/assets/{index-Cj7vACZe.js → index-05TEIcTK.js} +1 -1
  54. package/assets/{index-DOExxORl.js → index-B-LQTELZ.js} +1 -1
  55. package/assets/{index-m9UlXIqW.js → index-B4W596TW.js} +1 -1
  56. package/assets/{index-BnFty3Li.js → index-B783X15B.js} +1 -1
  57. package/assets/{index-BSTJA_7O.js → index-B7XzHP06.js} +2 -2
  58. package/assets/{index-CLE07-_x.js → index-B9j_TxaG.js} +1 -1
  59. package/assets/{index-BTkTkfcn.js → index-BEUqFUmK.js} +1 -1
  60. package/assets/{index-KarPC4Z4.js → index-BKmzL4dB.js} +1 -1
  61. package/assets/{index-CLXqEKlA.js → index-BTxALjz0.js} +1 -1
  62. package/assets/{index-DquEMs4O.js → index-BVAkm-if.js} +1 -1
  63. package/assets/{index-XzW65SVh.js → index-BZ0G96F9.js} +1 -1
  64. package/assets/{index-Xk2toQGa.js → index-BduLiXkv.js} +1 -1
  65. package/assets/{index-BBWsjtyi.js → index-BeiOQplc.js} +1 -1
  66. package/assets/{index-C0nXxFCO.js → index-Bi2Li-Qv.js} +1 -1
  67. package/assets/{index-DgAZv7hc.js → index-Bmxl_PX0.js} +1 -1
  68. package/assets/{index-BoJsJx--.js → index-BugGwOGm.js} +1 -1
  69. package/assets/{index-CrBV_1yu.js → index-C65BwbSl.js} +1 -1
  70. package/assets/{index-cWedEEGZ.js → index-CEkhOpG8.js} +1 -1
  71. package/assets/{index-DccLoKMC.js → index-CJ-xZTUY.js} +2 -2
  72. package/assets/{index-B-iF1tO2.js → index-CP3rbzTi.js} +1 -1
  73. package/assets/{index-CLkVyB5o.js → index-CPe-jsUd.js} +1 -1
  74. package/assets/{index-D5uLI4BM.js → index-CRu4DZ_q.js} +1 -1
  75. package/assets/{index-zhHTnO6h.js → index-CTlbd0Pc.js} +1 -1
  76. package/assets/{index-BkdaY7_G.js → index-C_tm2hP5.js} +3 -3
  77. package/assets/{index-D-S19rzI.js → index-Cc25MKDv.js} +1 -1
  78. package/assets/{index-CQtzuPXx.js → index-CfFC8Kor.js} +1 -1
  79. package/assets/{index-CdcrnJ5_.js → index-CqvGQvCC.js} +1 -1
  80. package/assets/{index-CJEb8Kzs.js → index-CvhbXD5_.js} +1 -1
  81. package/assets/{index-CLy-wBAP.js → index-D0hBeQij.js} +2 -2
  82. package/assets/{index-BgPhxGKT.js → index-D0uc0t0a.js} +1 -1
  83. package/assets/{index-CXiOQLIu.js → index-D2S8EAvD.js} +1 -1
  84. package/assets/{index-BDnsSs1l.js → index-D5K4H3oj.js} +1 -1
  85. package/assets/{index-0QSHJ5kM.js → index-D6de3csH.js} +1 -1
  86. package/assets/{index-BbTcdIk0.js → index-D6uJBPoL.js} +1 -1
  87. package/assets/{index-DDLsPu5_.js → index-D9auFFhw.js} +3 -3
  88. package/assets/{index-DUVY_38U.js → index-DB8AjC_4.js} +1 -1
  89. package/assets/{index-DpcKgN-v.js → index-DGT0V7vP.js} +1 -1
  90. package/assets/{index-DGoPqCsR.js → index-DH7a6xJr.js} +1 -1
  91. package/assets/{index-BEDCm9Wu.js → index-DHfdjUh0.js} +1 -1
  92. package/assets/{index-NdfBDpoO.js → index-DObs6olk.js} +1 -1
  93. package/assets/{index-CqIROolS.js → index-DeH_9coL.js} +1 -1
  94. package/assets/{index-CWRbefrn.js → index-DlAkdJAg.js} +1 -1
  95. package/assets/{index-xmSB5b1v.js → index-DtBgXcr9.js} +1 -1
  96. package/assets/{index-B91_eufC.js → index-DtqNZEkz.js} +1 -1
  97. package/assets/{index-Cmk_xiBk.js → index-KGqaLC_6.js} +1 -1
  98. package/assets/{index-CyqLliR_.js → index-Y2-1znwX.js} +3 -3
  99. package/assets/{index-CWgv2cWv.js → index-kGIZqDCq.js} +1 -1
  100. package/assets/{index-BP1BUYI1.js → index-maU75svR.js} +1 -1
  101. package/assets/{index-D1cUVAY6.js → index-n5XtpNZy.js} +1 -1
  102. package/assets/{index-kpX0X-RL.js → index-pW9qg055.js} +1 -1
  103. package/assets/{index-Brg6cgDQ.js → index-qGfD4dOv.js} +1 -1
  104. package/assets/{index.es-BtrYS_gk.js → index.es-CZ2CoWBZ.js} +4 -4
  105. package/assets/{index.es-Cw0Wg8zr.js → index.es-ChSImqGH.js} +1 -1
  106. package/assets/{index.es-CFwo152a.js → index.es-CtLvPXsy.js} +1 -1
  107. package/assets/{localBatchGatewayRequest-W5wM5RIw.js → localBatchGatewayRequest-Bdk7xkMY.js} +1 -1
  108. package/assets/{mana-rate-D91Nq-wO.js → mana-rate-ht8qDfqA.js} +1 -1
  109. package/assets/network-B3VL8BrJ.js +1 -0
  110. package/assets/{networks-DLxu9QYW.js → networks-Cp4nI61m.js} +1 -1
  111. package/assets/{onramp-DjMFTSAW.js → onramp-BNRxRdth.js} +1 -1
  112. package/assets/{openzeppelin-2ZkXoMQF.js → openzeppelin-DT9-LUIq.js} +1 -1
  113. package/assets/{ownerOf-BAgrPslR.js → ownerOf-Db5DHkkN.js} +1 -1
  114. package/assets/{parseNft-xmwbSwKx.js → parseNft-BwLVv36-.js} +2 -2
  115. package/assets/{parseSignature-DS_qYYXg.js → parseSignature-BugQi3bE.js} +3 -3
  116. package/assets/{parseSignature-Dfqx4qdB.js → parseSignature-aNPVe_t_.js} +1 -1
  117. package/assets/{pay-with-exchange-BfqKWl-i.js → pay-with-exchange-BdGg91EJ.js} +1 -1
  118. package/assets/{qr-overlay-CuzJkOyH.js → qr-overlay-x2RL00QA.js} +1 -1
  119. package/assets/{receive-BXV5EvIe.js → receive-BraityH3.js} +1 -1
  120. package/assets/{resolveImplementation-Cp1kSEV-.js → resolveImplementation-DBLvNtrr.js} +1 -1
  121. package/assets/{rpc-Dtax0ZGB.js → rpc-DpEJwyfw.js} +1 -1
  122. package/assets/{secp256k1-C95i4S9L.js → secp256k1-Ahl6VysI.js} +1 -1
  123. package/assets/{secp256k1-yf38iHjx.js → secp256k1-DeUnVv2M.js} +1 -1
  124. package/assets/{secp256k1-D8wYY9C6.js → secp256k1-vBNAz67A.js} +1 -1
  125. package/assets/{send-bACcTxXh.js → send-CI75xlpy.js} +1 -1
  126. package/assets/{send-batch-transaction-vUlQ3f8W.js → send-batch-transaction-B3K43zcx.js} +1 -1
  127. package/assets/{send-eip712-transaction-BAhg0sSO.js → send-eip712-transaction-BOSYnGeU.js} +2 -2
  128. package/assets/{send-gasless-transaction-Bbc--ckt.js → send-gasless-transaction-IRq6bHjg.js} +2 -2
  129. package/assets/{sendRawTransaction-Cn-exoEI.js → sendRawTransaction-sWE7ErP_.js} +3 -3
  130. package/assets/{serializeTransaction-CI3T0WRP.js → serializeTransaction-CBv0eMX3.js} +1 -1
  131. package/assets/{session-proposal-D0XHSqV_.js → session-proposal-D8eDk7n9.js} +1 -1
  132. package/assets/{session-request-BsTTXWj7.js → session-request-wtcOyQzv.js} +2 -2
  133. package/assets/{sha256-DMkvy9Cz.js → sha256-D_wBPnZ8.js} +1 -1
  134. package/assets/{signing-DeH43Aaw.js → signing-B-g4nKHW.js} +4 -4
  135. package/assets/{socials-D-IAo2yx.js → socials-CJlvLmI3.js} +1 -1
  136. package/assets/{swaps-BWMX0U3I.js → swaps-DWjz9ylG.js} +1 -1
  137. package/assets/{thirdweb-iPhsIfpR.js → thirdweb-D0LntWDb.js} +3 -3
  138. package/assets/{totalSupply-CSwsdpN_.js → totalSupply-DrETmUOr.js} +1 -1
  139. package/assets/{transactionReceipt-U1NdpKCV.js → transactionReceipt-Dfzqkc5H.js} +1 -1
  140. package/assets/{transactions-BkfWn19q.js → transactions-CelH2kK-.js} +1 -1
  141. package/assets/{useInfiniteGrid-6pBFQ8Kh.js → useInfiniteGrid-DlBWvPPH.js} +1 -1
  142. package/assets/{verifyHash-C7RY1nlI.js → verifyHash-BnBpCdL-.js} +1 -1
  143. package/assets/{w3m-modal-DMTcXY8g.js → w3m-modal-DGrqAA-e.js} +1 -1
  144. package/assets/{w3m-modal-1UZQLvps.js → w3m-modal-aOEtrpDA.js} +1 -1
  145. package/assets/{wait-for-tx-receipt-Dy501zTV.js → wait-for-tx-receipt-PjDskCfA.js} +1 -1
  146. package/assets/{wallet-kind-By432Wm8.js → wallet-kind-Ct-yzkUJ.js} +1 -1
  147. package/assets/{wallets-DpuodgNe.js → wallets-CBr0yC2d.js} +6 -6
  148. package/assets/{web-connector-C0IKOCFh.js → web-connector-C7LZtiUS.js} +3 -3
  149. package/assets/{writeContract-B_fZae2g.js → writeContract-B1xq_9p3.js} +1 -1
  150. package/assets/{zoraTestnet-DBtbozoi.js → zoraTestnet-BxGSdu1F.js} +1 -1
  151. package/index.html +8 -8
  152. package/package.json +2 -2
  153. package/assets/decimals-690uYbRk.js +0 -1
  154. package/assets/network-ivZE_UMc.js +0 -1
@@ -1 +1 @@
1
- import{u as K,r as t,j as e}from"./react-E8ng6RF2.js";import{t as M,C as Q,A as V,f as X}from"./index-DDLsPu5_.js";import{S as F}from"./SkeletonCards-yV2mi4oc.js";import{L as ee}from"./LoadMore-DB6TwvRe.js";import{u as se}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";const re=48,k=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]},{key:"ens",label:"NAMEs",sub:[]},{key:"parcel",label:"Lands",sub:[]}],te={Head:["head","hat","hair","facial_hair","eyes","eyebrows","mouth","mask","helmet","tiara","top_head"],"Upper Body":["upper_body"],Handwear:["hands_wear"],"Lower Body":["lower_body"],Feet:["feet"],Accessories:["earring","eyewear"],Skins:["skin"]},ie=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],f=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function de(){const[B]=K(),l=(B.get("q")??"").trim().toLowerCase(),[n,C]=t.useState("wearable"),[r,x]=t.useState(null),[i,S]=t.useState([]),[p,w]=t.useState(""),[m,$]=t.useState(""),[u,H]=t.useState("newest"),[a,d]=t.useState(null),h=p&&!Number.isNaN(Number(p))?Number(p):void 0,b=m&&!Number.isNaN(Number(m))?Number(m):void 0,I=r?te[r]:void 0,q=(f.find(s=>s.key===u)??f[0]).server,A={category:n,rarities:i.length?i:void 0,wearableCategories:I,minPriceCredits:h,maxPriceCredits:b,search:l||void 0,sortBy:q},{items:P,total:y,isLoading:c,error:L,hasNextPage:O,isFetchingNextPage:E,fetchNextPage:T}=se(["listings",A],s=>X({...A,first:re,skip:s})),N=y,R=t.useRef(null);t.useEffect(()=>{c||!l||R.current===l||(R.current=l,M("Shop Searched",{query:l,result_count:N}))},[l,c,N]);const g=t.useRef("__init__");t.useEffect(()=>{if(c)return;const s=JSON.stringify({category:n,subCategory:r,rarities:i,min:h,max:b,sort:u});if(g.current==="__init__"||g.current===s){g.current=s;return}g.current=s,M("Shop Applied Filter",{filters:{category:n,sub_category:r,rarities:i,min_price_credits:h??null,max_price_credits:b??null,sort:u},result_count:N})},[n,r,i,h,b,u,c,N]);function U(s){C(s),x(null)}function G(s){S(o=>o.includes(s)?o.filter(D=>D!==s):[...o,s])}function Z(){C("wearable"),x(null),S([]),w(""),$(""),d(null)}function j(s){d(o=>o===s?null:s)}const J=f.find(s=>s.key===u)??f[0],_=k.find(s=>s.key===n)??k[0],W=r?`${_.label} · ${r}`:_.label,v=!!(h||b),Y=v?`${p||"0"}–${m||"∞"}`:"Price",z=n!=="wearable"||!!r||i.length>0||v;return e.jsxs("div",{className:"browse",children:[a?e.jsx("div",{className:"filterbar__scrim",onClick:()=>d(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="section"?" is-open":""}${r||n!=="wearable"?" is-active":""}`,onClick:()=>j("section"),children:[W," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:k.map(s=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${n===s.key?" is-active":""}`,onClick:()=>U(s.key),children:s.label})},s.key))}),_.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${r?"":" is-active"}`,onClick:()=>{x(null),d(null)},children:["All ",_.label]})}),_.sub.map(s=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${r===s?" is-active":""}`,onClick:()=>{x(o=>o===s?null:s),d(null)},children:s})},s))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="rarity"?" is-open":""}${i.length?" is-active":""}`,onClick:()=>j("rarity"),children:["Rarity ",i.length?e.jsx("span",{className:"filterbar__badge",children:i.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:ie.map(s=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:i.includes(s),onChange:()=>G(s)}),e.jsx("span",{children:s})]},s))}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="price"?" is-open":""}${v?" is-active":""}`,onClick:()=>j("price"),children:[Y," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="price"?e.jsxs("div",{className:"filter-pop filter-pop--price",children:[e.jsxs("div",{className:"filter-pop__price-row",children:[e.jsx("input",{type:"number",min:"0",placeholder:"Min",value:p,onChange:s=>w(s.target.value)}),e.jsx("span",{children:"–"}),e.jsx("input",{type:"number",min:"0",placeholder:"Max",value:m,onChange:s=>$(s.target.value)})]}),e.jsxs("p",{className:"filter-pop__hint",children:["Price in ",Q.name]})]}):null]}),z?e.jsx("button",{className:"filterbar__clear",onClick:Z,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[c?"…":`${y.toLocaleString()} item${y===1?"":"s"}`,l?` for “${l}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${a==="sort"?" is-open":""}`,onClick:()=>j("sort"),children:["Sort by: ",J.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:f.map(s=>e.jsx("button",{className:`filter-pop__sort${s.key===u?" is-active":""}`,onClick:()=>{H(s.key),d(null)},children:s.label},s.key))}):null]})]})]}),L?e.jsx("p",{className:"error",children:L.message}):null,e.jsx("div",{className:"grid",children:c?e.jsx(F,{count:15}):e.jsxs(e.Fragment,{children:[P.map(s=>e.jsx(V,{item:s},s.id)),E?e.jsx(F,{count:6}):null]})}),e.jsx(ee,{hasNextPage:O,isFetching:E,onLoadMore:()=>T()}),!c&&P.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null]})}export{de as Assets};
1
+ import{u as K,r as t,j as e}from"./react-E8ng6RF2.js";import{t as M,C as Q,A as V,f as X}from"./index-D9auFFhw.js";import{S as F}from"./SkeletonCards-yV2mi4oc.js";import{L as ee}from"./LoadMore-DB6TwvRe.js";import{u as se}from"./useInfiniteGrid-DlBWvPPH.js";import"./ethers-BxoDGoYp.js";const re=48,k=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]},{key:"ens",label:"NAMEs",sub:[]},{key:"parcel",label:"Lands",sub:[]}],te={Head:["head","hat","hair","facial_hair","eyes","eyebrows","mouth","mask","helmet","tiara","top_head"],"Upper Body":["upper_body"],Handwear:["hands_wear"],"Lower Body":["lower_body"],Feet:["feet"],Accessories:["earring","eyewear"],Skins:["skin"]},ie=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],f=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function de(){const[B]=K(),l=(B.get("q")??"").trim().toLowerCase(),[n,C]=t.useState("wearable"),[r,x]=t.useState(null),[i,S]=t.useState([]),[p,w]=t.useState(""),[m,$]=t.useState(""),[u,H]=t.useState("newest"),[a,d]=t.useState(null),h=p&&!Number.isNaN(Number(p))?Number(p):void 0,b=m&&!Number.isNaN(Number(m))?Number(m):void 0,I=r?te[r]:void 0,q=(f.find(s=>s.key===u)??f[0]).server,A={category:n,rarities:i.length?i:void 0,wearableCategories:I,minPriceCredits:h,maxPriceCredits:b,search:l||void 0,sortBy:q},{items:P,total:y,isLoading:c,error:L,hasNextPage:O,isFetchingNextPage:E,fetchNextPage:T}=se(["listings",A],s=>X({...A,first:re,skip:s})),N=y,R=t.useRef(null);t.useEffect(()=>{c||!l||R.current===l||(R.current=l,M("Shop Searched",{query:l,result_count:N}))},[l,c,N]);const g=t.useRef("__init__");t.useEffect(()=>{if(c)return;const s=JSON.stringify({category:n,subCategory:r,rarities:i,min:h,max:b,sort:u});if(g.current==="__init__"||g.current===s){g.current=s;return}g.current=s,M("Shop Applied Filter",{filters:{category:n,sub_category:r,rarities:i,min_price_credits:h??null,max_price_credits:b??null,sort:u},result_count:N})},[n,r,i,h,b,u,c,N]);function U(s){C(s),x(null)}function G(s){S(o=>o.includes(s)?o.filter(D=>D!==s):[...o,s])}function Z(){C("wearable"),x(null),S([]),w(""),$(""),d(null)}function j(s){d(o=>o===s?null:s)}const J=f.find(s=>s.key===u)??f[0],_=k.find(s=>s.key===n)??k[0],W=r?`${_.label} · ${r}`:_.label,v=!!(h||b),Y=v?`${p||"0"}–${m||"∞"}`:"Price",z=n!=="wearable"||!!r||i.length>0||v;return e.jsxs("div",{className:"browse",children:[a?e.jsx("div",{className:"filterbar__scrim",onClick:()=>d(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="section"?" is-open":""}${r||n!=="wearable"?" is-active":""}`,onClick:()=>j("section"),children:[W," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:k.map(s=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${n===s.key?" is-active":""}`,onClick:()=>U(s.key),children:s.label})},s.key))}),_.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${r?"":" is-active"}`,onClick:()=>{x(null),d(null)},children:["All ",_.label]})}),_.sub.map(s=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${r===s?" is-active":""}`,onClick:()=>{x(o=>o===s?null:s),d(null)},children:s})},s))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="rarity"?" is-open":""}${i.length?" is-active":""}`,onClick:()=>j("rarity"),children:["Rarity ",i.length?e.jsx("span",{className:"filterbar__badge",children:i.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:ie.map(s=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:i.includes(s),onChange:()=>G(s)}),e.jsx("span",{children:s})]},s))}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${a==="price"?" is-open":""}${v?" is-active":""}`,onClick:()=>j("price"),children:[Y," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="price"?e.jsxs("div",{className:"filter-pop filter-pop--price",children:[e.jsxs("div",{className:"filter-pop__price-row",children:[e.jsx("input",{type:"number",min:"0",placeholder:"Min",value:p,onChange:s=>w(s.target.value)}),e.jsx("span",{children:"–"}),e.jsx("input",{type:"number",min:"0",placeholder:"Max",value:m,onChange:s=>$(s.target.value)})]}),e.jsxs("p",{className:"filter-pop__hint",children:["Price in ",Q.name]})]}):null]}),z?e.jsx("button",{className:"filterbar__clear",onClick:Z,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[c?"…":`${y.toLocaleString()} item${y===1?"":"s"}`,l?` for “${l}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${a==="sort"?" is-open":""}`,onClick:()=>j("sort"),children:["Sort by: ",J.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),a==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:f.map(s=>e.jsx("button",{className:`filter-pop__sort${s.key===u?" is-active":""}`,onClick:()=>{H(s.key),d(null)},children:s.label},s.key))}):null]})]})]}),L?e.jsx("p",{className:"error",children:L.message}):null,e.jsx("div",{className:"grid",children:c?e.jsx(F,{count:15}):e.jsxs(e.Fragment,{children:[P.map(s=>e.jsx(V,{item:s},s.id)),E?e.jsx(F,{count:6}):null]})}),e.jsx(ee,{hasNextPage:O,isFetching:E,onLoadMore:()=>T()}),!c&&P.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null]})}export{de as Assets};
@@ -1 +1 @@
1
- import{b as L,r as b,j as e,L as T}from"./react-E8ng6RF2.js";import{j as _,c as Q,e as K,k as W,l as $,C as d,t as v,m as q,h as A,n as M,o as H,q as V,r as I,s as P,v as D,w as J,x as O,f as X}from"./index-DDLsPu5_.js";import{f as F}from"./buy-qVYsiH8c.js";import{g as Z,b as ee,w as se,G as ae}from"./buy-gasless-EwLKJESl.js";import"./ethers-BxoDGoYp.js";import"./index-0QSHJ5kM.js";function te(a){const o=a,l=(o.message??"").toLowerCase();return o.code===4001||l.includes("reject")||l.includes("denied")||l.includes("cancel")?"You cancelled the request.":l.includes("insufficient")?`You don't have enough ${d.name} — get more first.`:l.includes("no active listing")?o.message:"Couldn't complete checkout — please try again."}function re(a){return O(a.received[0].amount)}function ue(){const a=_(s=>s.items),o=_(s=>s.remove),l=_(s=>s.clear),U=_(s=>s.add),{session:t}=Q(),{data:f}=K({queryKey:["upsell-listings"],queryFn:()=>X({first:40}),staleTime:6e4}),{data:n}=W(t),g=$(),Y=L(),[N,m]=b.useState(null),[C,y]=b.useState(null),[p,w]=b.useState(!1),u=a.reduce((s,h)=>s+h.priceCredits,0),z=new Set(a.map(s=>s.id)),k=((f==null?void 0:f.items)??[]).filter(s=>!z.has(s.id)).slice(0,6);async function G(){if(!t){y("Sign in to check out.");return}y(null),w(!0),v("Shop Started Checkout",{cart_size:a.length,cart_value_credits:u,cart_value_usd:q(u),has_sufficient_credits:((n==null?void 0:n.credits)??0)>=u});const s=a.slice(),h=[];let x="authorize",S=!1;try{m("Preparing your order…");const c=[];for(const r of a){const j=r.tradeId?await A(r.tradeId):await M(r.contractAddress,r.itemId??"");if(!j)throw new Error(`No active listing for ${r.name}.`);const R=re(j),{credit:E,maxCreditedValue:B}=await H(t.identity,R,r.tradeId);h.push(E.id),c.push({trade:j,credits:[E],maxCreditedValue:B})}m("Confirming your purchase…"),x="submit";let i=[];if(Z())try{i=await ee({purchases:c,buyer:t.address,signer:t.signer}),await Promise.all(i.map(r=>se(r))),S=!0}catch(r){if(!(r instanceof ae))throw r;i=await F({purchases:c,buyer:t.address,signer:t.signer})}else i=await F({purchases:c,buyer:t.address,signer:t.signer});l(),m("Purchased! 🎉"),v("Shop Completed Purchase",{...V(s),payment_type:"credits",no_crypto_step:S,transaction_hash:i[0]??null}),g.invalidateQueries({queryKey:["usd-balance"]}),Y("/success",{state:{items:s,txHash:i[0]}})}catch(c){if(I(c)||P(c,{flow:"cart_checkout",step:x,cart_size:a.length}),v(I(c)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:x,error_code:D(c),value_usd:q(u),cart_size:a.length}),h.length){try{await J(t.identity,h)}catch(i){P(i,{flow:"cart_checkout",step:"release"})}g.invalidateQueries({queryKey:["usd-balance"]})}y(te(c)),m(null)}finally{w(!1)}}return a.length===0?e.jsxs("div",{className:"cart cart--empty",children:[e.jsx("span",{className:"ico ico-cart cart-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"cart-empty__title",children:"Your cart is empty"}),e.jsx("p",{className:"muted",children:"Find something you love and it’ll show up here."}),e.jsx(T,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):e.jsxs("div",{className:"cart",children:[e.jsxs("h1",{children:["Cart (",a.length,")"]}),e.jsx("div",{className:"cart__list",children:a.map(s=>e.jsxs("div",{className:"cart__row",children:[e.jsx("div",{className:"cart__thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:s.name}):null}),e.jsxs("div",{className:"cart__info",children:[e.jsx("div",{className:"cart__name",children:s.name}),e.jsx("div",{className:"muted",children:s.creator?`By ${s.creator}`:""})]}),e.jsxs("div",{className:"cart__price",children:[d.symbol," ",s.priceCredits]}),e.jsx("button",{className:"link",onClick:()=>o(s.id),disabled:p,children:"Remove"})]},s.id))}),e.jsxs("div",{className:"cart__foot",children:[e.jsxs("div",{className:"cart__total",children:[e.jsxs("div",{children:["Total ",e.jsxs("strong",{children:[d.symbol," ",u]})]}),t?e.jsxs("div",{className:"muted cart__balance",children:["Your balance: ",d.symbol," ",(n==null?void 0:n.credits)??0]}):null]}),e.jsxs("div",{className:"cart__actions",children:[e.jsxs(T,{className:"btn btn--ghost",to:"/credits",children:["Get ",d.name]}),null,e.jsx("button",{className:"btn btn--ghost",onClick:l,disabled:p,children:"Clear"}),e.jsx("button",{className:"btn btn--purple",onClick:G,disabled:p,children:"Checkout"})]})]}),N?e.jsx("p",{className:"muted",style:{marginTop:12},children:N}):null,C?e.jsx("p",{className:"error",style:{marginTop:12},children:C}):null,k.length>0?e.jsxs("div",{className:"cart-upsell",children:[e.jsx("h2",{className:"cart-upsell__title",children:"You might also like"}),e.jsx("div",{className:"cart-upsell__row",children:k.map(s=>e.jsxs("div",{className:"cart-upsell__card",children:[e.jsx("div",{className:"cart-upsell__thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:s.name}):null}),e.jsx("div",{className:"cart-upsell__name",title:s.name,children:s.name}),e.jsxs("div",{className:"cart-upsell__price",children:[d.symbol," ",s.priceCredits]}),e.jsx("button",{className:"btn btn--sm cart-upsell__add",onClick:()=>U(s,"upsell"),disabled:p,children:"Add"})]},s.id))})]}):null]})}export{ue as Cart};
1
+ import{b as L,r as b,j as e,L as T}from"./react-E8ng6RF2.js";import{j as _,c as Q,e as K,k as W,l as $,C as d,t as v,m as q,h as A,n as M,o as H,q as V,r as I,s as P,v as D,w as J,x as O,f as X}from"./index-D9auFFhw.js";import{f as F}from"./buy-Fa44beN-.js";import{g as Z,b as ee,w as se,G as ae}from"./buy-gasless-C_Lvd8qQ.js";import"./ethers-BxoDGoYp.js";import"./index-D6de3csH.js";function te(a){const o=a,l=(o.message??"").toLowerCase();return o.code===4001||l.includes("reject")||l.includes("denied")||l.includes("cancel")?"You cancelled the request.":l.includes("insufficient")?`You don't have enough ${d.name} — get more first.`:l.includes("no active listing")?o.message:"Couldn't complete checkout — please try again."}function re(a){return O(a.received[0].amount)}function ue(){const a=_(s=>s.items),o=_(s=>s.remove),l=_(s=>s.clear),U=_(s=>s.add),{session:t}=Q(),{data:f}=K({queryKey:["upsell-listings"],queryFn:()=>X({first:40}),staleTime:6e4}),{data:n}=W(t),g=$(),Y=L(),[N,m]=b.useState(null),[C,y]=b.useState(null),[p,w]=b.useState(!1),u=a.reduce((s,h)=>s+h.priceCredits,0),z=new Set(a.map(s=>s.id)),k=((f==null?void 0:f.items)??[]).filter(s=>!z.has(s.id)).slice(0,6);async function G(){if(!t){y("Sign in to check out.");return}y(null),w(!0),v("Shop Started Checkout",{cart_size:a.length,cart_value_credits:u,cart_value_usd:q(u),has_sufficient_credits:((n==null?void 0:n.credits)??0)>=u});const s=a.slice(),h=[];let x="authorize",S=!1;try{m("Preparing your order…");const c=[];for(const r of a){const j=r.tradeId?await A(r.tradeId):await M(r.contractAddress,r.itemId??"");if(!j)throw new Error(`No active listing for ${r.name}.`);const R=re(j),{credit:E,maxCreditedValue:B}=await H(t.identity,R,r.tradeId);h.push(E.id),c.push({trade:j,credits:[E],maxCreditedValue:B})}m("Confirming your purchase…"),x="submit";let i=[];if(Z())try{i=await ee({purchases:c,buyer:t.address,signer:t.signer}),await Promise.all(i.map(r=>se(r))),S=!0}catch(r){if(!(r instanceof ae))throw r;i=await F({purchases:c,buyer:t.address,signer:t.signer})}else i=await F({purchases:c,buyer:t.address,signer:t.signer});l(),m("Purchased! 🎉"),v("Shop Completed Purchase",{...V(s),payment_type:"credits",no_crypto_step:S,transaction_hash:i[0]??null}),g.invalidateQueries({queryKey:["usd-balance"]}),Y("/success",{state:{items:s,txHash:i[0]}})}catch(c){if(I(c)||P(c,{flow:"cart_checkout",step:x,cart_size:a.length}),v(I(c)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:x,error_code:D(c),value_usd:q(u),cart_size:a.length}),h.length){try{await J(t.identity,h)}catch(i){P(i,{flow:"cart_checkout",step:"release"})}g.invalidateQueries({queryKey:["usd-balance"]})}y(te(c)),m(null)}finally{w(!1)}}return a.length===0?e.jsxs("div",{className:"cart cart--empty",children:[e.jsx("span",{className:"ico ico-cart cart-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"cart-empty__title",children:"Your cart is empty"}),e.jsx("p",{className:"muted",children:"Find something you love and it’ll show up here."}),e.jsx(T,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):e.jsxs("div",{className:"cart",children:[e.jsxs("h1",{children:["Cart (",a.length,")"]}),e.jsx("div",{className:"cart__list",children:a.map(s=>e.jsxs("div",{className:"cart__row",children:[e.jsx("div",{className:"cart__thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:s.name}):null}),e.jsxs("div",{className:"cart__info",children:[e.jsx("div",{className:"cart__name",children:s.name}),e.jsx("div",{className:"muted",children:s.creator?`By ${s.creator}`:""})]}),e.jsxs("div",{className:"cart__price",children:[d.symbol," ",s.priceCredits]}),e.jsx("button",{className:"link",onClick:()=>o(s.id),disabled:p,children:"Remove"})]},s.id))}),e.jsxs("div",{className:"cart__foot",children:[e.jsxs("div",{className:"cart__total",children:[e.jsxs("div",{children:["Total ",e.jsxs("strong",{children:[d.symbol," ",u]})]}),t?e.jsxs("div",{className:"muted cart__balance",children:["Your balance: ",d.symbol," ",(n==null?void 0:n.credits)??0]}):null]}),e.jsxs("div",{className:"cart__actions",children:[e.jsxs(T,{className:"btn btn--ghost",to:"/credits",children:["Get ",d.name]}),null,e.jsx("button",{className:"btn btn--ghost",onClick:l,disabled:p,children:"Clear"}),e.jsx("button",{className:"btn btn--purple",onClick:G,disabled:p,children:"Checkout"})]})]}),N?e.jsx("p",{className:"muted",style:{marginTop:12},children:N}):null,C?e.jsx("p",{className:"error",style:{marginTop:12},children:C}):null,k.length>0?e.jsxs("div",{className:"cart-upsell",children:[e.jsx("h2",{className:"cart-upsell__title",children:"You might also like"}),e.jsx("div",{className:"cart-upsell__row",children:k.map(s=>e.jsxs("div",{className:"cart-upsell__card",children:[e.jsx("div",{className:"cart-upsell__thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:s.name}):null}),e.jsx("div",{className:"cart-upsell__name",title:s.name,children:s.name}),e.jsxs("div",{className:"cart-upsell__price",children:[d.symbol," ",s.priceCredits]}),e.jsx("button",{className:"btn btn--sm cart-upsell__add",onClick:()=>U(s,"upsell"),disabled:p,children:"Add"})]},s.id))})]}):null]})}export{ue as Cart};
@@ -1 +1 @@
1
- import{a as g,b as h,j as e}from"./react-E8ng6RF2.js";import{a as x,A as j,b as _}from"./index-DDLsPu5_.js";import{A as N}from"./collection-yK7CsBpq.js";import{S as m}from"./SkeletonCards-yV2mi4oc.js";import{L as f}from"./LoadMore-DB6TwvRe.js";import{u as b}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";const C=48;function F(){var i;const{contractAddress:o}=g(),d=h(),{items:s,total:t,isLoading:a,error:c,hasNextPage:p,isFetchingNextPage:n,fetchNextPage:u}=b(["collection-page",o],l=>_(o,{first:C,skip:l}),{enabled:!!o}),r=(i=s[0])==null?void 0:i.creator;return e.jsxs("div",{className:"collection-page",children:[e.jsxs("nav",{className:"collection-page__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"collection-page__crumb-link",onClick:()=>d("/assets"),children:"Collectibles"}),e.jsx("span",{className:"collection-page__crumb-sep",children:"/"}),e.jsx("span",{className:"collection-page__crumb-current",children:"Collection"})]}),e.jsxs("header",{className:"collection-page__head",children:[e.jsx("h1",{className:"collection-page__title",children:"Collection"}),r?e.jsx(x,{address:r,className:"collection-page__creator"}):null,e.jsx("span",{className:"muted collection-page__count",children:a?"…":`${t.toLocaleString()} item${t===1?"":"s"}`})]}),!a&&s.length>0?e.jsx(N,{items:s,source:"collection"}):null,c?e.jsx("p",{className:"error",children:c.message}):null,e.jsx("div",{className:"grid",children:a?e.jsx(m,{count:12}):e.jsxs(e.Fragment,{children:[s.map(l=>e.jsx(j,{item:l},l.id)),n?e.jsx(m,{count:6}):null]})}),e.jsx(f,{hasNextPage:p,isFetching:n,onLoadMore:()=>u()}),!a&&!c&&s.length===0?e.jsx("p",{className:"muted",children:"This collection has no items to show."}):null]})}export{F as Collection,F as default};
1
+ import{a as g,b as h,j as e}from"./react-E8ng6RF2.js";import{a as x,A as j,b as _}from"./index-D9auFFhw.js";import{A as N}from"./collection-DOkBn0OO.js";import{S as m}from"./SkeletonCards-yV2mi4oc.js";import{L as f}from"./LoadMore-DB6TwvRe.js";import{u as b}from"./useInfiniteGrid-DlBWvPPH.js";import"./ethers-BxoDGoYp.js";const C=48;function F(){var i;const{contractAddress:o}=g(),d=h(),{items:s,total:t,isLoading:a,error:c,hasNextPage:p,isFetchingNextPage:n,fetchNextPage:u}=b(["collection-page",o],l=>_(o,{first:C,skip:l}),{enabled:!!o}),r=(i=s[0])==null?void 0:i.creator;return e.jsxs("div",{className:"collection-page",children:[e.jsxs("nav",{className:"collection-page__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"collection-page__crumb-link",onClick:()=>d("/assets"),children:"Collectibles"}),e.jsx("span",{className:"collection-page__crumb-sep",children:"/"}),e.jsx("span",{className:"collection-page__crumb-current",children:"Collection"})]}),e.jsxs("header",{className:"collection-page__head",children:[e.jsx("h1",{className:"collection-page__title",children:"Collection"}),r?e.jsx(x,{address:r,className:"collection-page__creator"}):null,e.jsx("span",{className:"muted collection-page__count",children:a?"…":`${t.toLocaleString()} item${t===1?"":"s"}`})]}),!a&&s.length>0?e.jsx(N,{items:s,source:"collection"}):null,c?e.jsx("p",{className:"error",children:c.message}):null,e.jsx("div",{className:"grid",children:a?e.jsx(m,{count:12}):e.jsxs(e.Fragment,{children:[s.map(l=>e.jsx(j,{item:l},l.id)),n?e.jsx(m,{count:6}):null]})}),e.jsx(f,{hasNextPage:p,isFetching:n,onLoadMore:()=>u()}),!a&&!c&&s.length===0?e.jsx("p",{className:"muted",children:"This collection has no items to show."}):null]})}export{F as Collection,F as default};
@@ -1 +1 @@
1
- import{j as e,a as g,b as p}from"./react-E8ng6RF2.js";import{D as i,a as h,A as x,E as j}from"./index-DDLsPu5_.js";import{A as f}from"./collection-yK7CsBpq.js";import{S as m}from"./SkeletonCards-yV2mi4oc.js";import{L as b}from"./LoadMore-DB6TwvRe.js";import{u as N}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";function _({address:s,className:r=""}){const o=i(t=>t.followed.includes(s.toLowerCase())),a=i(t=>t.toggle);return s?e.jsx("button",{type:"button",className:`btn btn--sm ${o?"btn--ghost":"btn--outline"} ${r}`.trim(),"aria-pressed":o,title:o?"Unfollow creator":"Follow creator",onClick:()=>a(s),children:o?"Following":"Follow"}):null}const C=48;function E(){const{address:s}=g(),r=p(),{items:o,total:a,isLoading:t,error:n,hasNextPage:u,isFetchingNextPage:c,fetchNextPage:d}=N(["creator-page",s],l=>j(s,{first:C,skip:l}),{enabled:!!s});return e.jsxs("div",{className:"collection-page",children:[e.jsxs("nav",{className:"collection-page__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"collection-page__crumb-link",onClick:()=>r("/assets"),children:"Collectibles"}),e.jsx("span",{className:"collection-page__crumb-sep",children:"/"}),e.jsx("span",{className:"collection-page__crumb-current",children:"Creator"})]}),e.jsxs("header",{className:"collection-page__head",children:[s?e.jsx(h,{address:s,className:"collection-page__title-creator"}):null,s?e.jsx(_,{address:s}):null,e.jsx("span",{className:"muted collection-page__count",children:t?"…":`${a.toLocaleString()} item${a===1?"":"s"}`})]}),!t&&o.length>0?e.jsx(f,{items:o,source:"creator"}):null,n?e.jsx("p",{className:"error",children:n.message}):null,e.jsx("div",{className:"grid",children:t?e.jsx(m,{count:12}):e.jsxs(e.Fragment,{children:[o.map(l=>e.jsx(x,{item:l},l.id)),c?e.jsx(m,{count:6}):null]})}),e.jsx(b,{hasNextPage:u,isFetching:c,onLoadMore:()=>d()}),!t&&!n&&o.length===0?e.jsx("p",{className:"muted",children:"This creator has no items to show yet."}):null]})}export{E as Creator,E as default};
1
+ import{j as e,a as g,b as p}from"./react-E8ng6RF2.js";import{D as i,a as h,A as x,E as j}from"./index-D9auFFhw.js";import{A as f}from"./collection-DOkBn0OO.js";import{S as m}from"./SkeletonCards-yV2mi4oc.js";import{L as b}from"./LoadMore-DB6TwvRe.js";import{u as N}from"./useInfiniteGrid-DlBWvPPH.js";import"./ethers-BxoDGoYp.js";function _({address:s,className:r=""}){const o=i(t=>t.followed.includes(s.toLowerCase())),a=i(t=>t.toggle);return s?e.jsx("button",{type:"button",className:`btn btn--sm ${o?"btn--ghost":"btn--outline"} ${r}`.trim(),"aria-pressed":o,title:o?"Unfollow creator":"Follow creator",onClick:()=>a(s),children:o?"Following":"Follow"}):null}const C=48;function E(){const{address:s}=g(),r=p(),{items:o,total:a,isLoading:t,error:n,hasNextPage:u,isFetchingNextPage:c,fetchNextPage:d}=N(["creator-page",s],l=>j(s,{first:C,skip:l}),{enabled:!!s});return e.jsxs("div",{className:"collection-page",children:[e.jsxs("nav",{className:"collection-page__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"collection-page__crumb-link",onClick:()=>r("/assets"),children:"Collectibles"}),e.jsx("span",{className:"collection-page__crumb-sep",children:"/"}),e.jsx("span",{className:"collection-page__crumb-current",children:"Creator"})]}),e.jsxs("header",{className:"collection-page__head",children:[s?e.jsx(h,{address:s,className:"collection-page__title-creator"}):null,s?e.jsx(_,{address:s}):null,e.jsx("span",{className:"muted collection-page__count",children:t?"…":`${a.toLocaleString()} item${a===1?"":"s"}`})]}),!t&&o.length>0?e.jsx(f,{items:o,source:"creator"}):null,n?e.jsx("p",{className:"error",children:n.message}):null,e.jsx("div",{className:"grid",children:t?e.jsx(m,{count:12}):e.jsxs(e.Fragment,{children:[o.map(l=>e.jsx(x,{item:l},l.id)),c?e.jsx(m,{count:6}):null]})}),e.jsx(b,{hasNextPage:u,isFetching:c,onLoadMore:()=>d()}),!t&&!n&&o.length===0?e.jsx("p",{className:"muted",children:"This creator has no items to show yet."}):null]})}export{E as Creator,E as default};
@@ -1 +1 @@
1
- import{C as l,E as w,b as E,S as A,d as k,O as U,N as P,g as f,B as x,e as N,i as I,p as L}from"./W3MFrameProviderSingleton-DBf03HGk.js";import{g as T,a as W,f as b,b as _,c as v}from"./index-CyqLliR_.js";const D=0,C={paymentAsset:null,amount:null,tokenAmount:0,priceLoading:!1,error:null,exchanges:[],isLoading:!1,currentPayment:void 0,isPaymentInProgress:!1,paymentId:"",assets:[]},e=L(C),m={state:e,subscribe(t){return I(e,()=>t(e))},subscribeKey(t,n){return N(e,t,n)},resetState(){Object.assign(e,{...C})},async getAssetsForNetwork(t){const n=v(t),s=await m.getAssetsImageAndPrice(n),r=n.map(a=>{var c,o,p,y;const u=a.asset==="native"?f():`${a.network}:${a.asset}`,i=s.find(S=>{var g,d,h;return((h=(d=(g=S.fungibles)==null?void 0:g[0])==null?void 0:d.address)==null?void 0:h.toLowerCase())===u.toLowerCase()});return{...a,price:((o=(c=i==null?void 0:i.fungibles)==null?void 0:c[0])==null?void 0:o.price)||1,metadata:{...a.metadata,iconUrl:(y=(p=i==null?void 0:i.fungibles)==null?void 0:p[0])==null?void 0:y.iconUrl}}});return e.assets=r,r},async getAssetsImageAndPrice(t){const n=t.map(r=>r.asset==="native"?f():`${r.network}:${r.asset}`);return await Promise.all(n.map(r=>x.fetchTokenPrice({addresses:[r]})))},getTokenAmount(){var s;if(!((s=e==null?void 0:e.paymentAsset)!=null&&s.price))throw new Error("Cannot get token price");const t=P.bigNumber(e.amount??0).round(8),n=P.bigNumber(e.paymentAsset.price).round(8);return t.div(n).round(8).toNumber()},setAmount(t){var n;e.amount=t,(n=e.paymentAsset)!=null&&n.price&&(e.tokenAmount=m.getTokenAmount())},setPaymentAsset(t){e.paymentAsset=t},isPayWithExchangeEnabled(){var t;return(t=U.state.remoteFeatures)==null?void 0:t.payWithExchange},isPayWithExchangeSupported(){return m.isPayWithExchangeEnabled()&&l.state.activeCaipNetwork&&k.PAY_WITH_EXCHANGE_SUPPORTED_CHAIN_NAMESPACES.includes(l.state.activeCaipNetwork.chainNamespace)},async fetchExchanges(){var t;try{const n=m.isPayWithExchangeSupported();if(!e.paymentAsset||!n){e.exchanges=[],e.isLoading=!1;return}e.isLoading=!0;const s=await _({page:D,asset:b(e.paymentAsset.network,e.paymentAsset.asset),amount:((t=e.amount)==null?void 0:t.toString())??"0"});e.exchanges=s.exchanges.slice(0,2)}catch{throw A.showError("Unable to get exchanges"),new Error("Unable to get exchanges")}finally{e.isLoading=!1}},async getPayUrl(t,n){try{const s=Number(n.amount),r=await W({exchangeId:t,asset:b(n.network,n.asset),amount:s.toString(),recipient:`${n.network}:${n.recipient}`});return w.sendEvent({type:"track",event:"PAY_EXCHANGE_SELECTED",properties:{exchange:{id:t},configuration:{network:n.network,asset:n.asset,recipient:n.recipient,amount:s},currentPayment:{type:"exchange",exchangeId:t},source:"fund-from-exchange",headless:!1}}),r}catch(s){throw s instanceof Error&&s.message.includes("is not supported")?new Error("Asset not supported"):new Error(s.message)}},async handlePayWithExchange(t){var n;try{const s=(n=l.getAccountData())==null?void 0:n.address;if(!s)throw new Error("No account connected");if(!e.paymentAsset)throw new Error("No payment asset selected");const r=E.returnOpenHref("","popupWindow","scrollbar=yes,width=480,height=720");if(!r)throw new Error("Could not create popup window");e.isPaymentInProgress=!0,e.paymentId=crypto.randomUUID(),e.currentPayment={type:"exchange",exchangeId:t};const{network:a,asset:u}=e.paymentAsset,i={network:a,asset:u,amount:e.tokenAmount,recipient:s},c=await m.getPayUrl(t,i);if(!c){try{r.close()}catch(o){console.error("Unable to close popup window",o)}throw new Error("Unable to initiate payment")}e.currentPayment.sessionId=c.sessionId,e.currentPayment.status="IN_PROGRESS",e.currentPayment.exchangeId=t,r.location.href=c.url}catch{e.error="Unable to initiate payment",A.showError(e.error)}},async waitUntilComplete({exchangeId:t,sessionId:n,paymentId:s,retries:r=20}){const a=await m.getBuyStatus(t,n,s);if(a.status==="SUCCESS"||a.status==="FAILED")return a;if(r===0)throw new Error("Unable to get deposit status");return await new Promise(u=>{setTimeout(u,5e3)}),m.waitUntilComplete({exchangeId:t,sessionId:n,paymentId:s,retries:r-1})},async getBuyStatus(t,n,s){var r,a,u,i,c;try{if(!e.currentPayment)throw new Error("No current payment");const o=await T({sessionId:n,exchangeId:t});if(e.currentPayment.status=o.status,o.status==="SUCCESS"||o.status==="FAILED"){const p=(r=l.getAccountData())==null?void 0:r.address;e.currentPayment.result=o.txHash,e.isPaymentInProgress=!1,w.sendEvent({type:"track",event:o.status==="SUCCESS"?"PAY_SUCCESS":"PAY_ERROR",properties:{message:o.status==="FAILED"?E.parseError(e.error):void 0,source:"fund-from-exchange",paymentId:s,configuration:{network:((a=e.paymentAsset)==null?void 0:a.network)||"",asset:((u=e.paymentAsset)==null?void 0:u.asset)||"",recipient:p||"",amount:e.amount??0},currentPayment:{type:"exchange",exchangeId:(i=e.currentPayment)==null?void 0:i.exchangeId,sessionId:(c=e.currentPayment)==null?void 0:c.sessionId,result:o.txHash}}})}return o}catch{return{status:"UNKNOWN",txHash:""}}},reset(){e.currentPayment=void 0,e.isPaymentInProgress=!1,e.paymentId="",e.paymentAsset=null,e.amount=0,e.tokenAmount=0,e.priceLoading=!1,e.error=null,e.exchanges=[],e.isLoading=!1}};export{m as E};
1
+ import{C as l,E as w,b as E,S as A,d as k,O as U,N as P,g as f,B as x,e as N,i as I,p as L}from"./W3MFrameProviderSingleton-DWW0KqqF.js";import{g as T,a as W,f as b,b as _,c as v}from"./index-Y2-1znwX.js";const D=0,C={paymentAsset:null,amount:null,tokenAmount:0,priceLoading:!1,error:null,exchanges:[],isLoading:!1,currentPayment:void 0,isPaymentInProgress:!1,paymentId:"",assets:[]},e=L(C),m={state:e,subscribe(t){return I(e,()=>t(e))},subscribeKey(t,n){return N(e,t,n)},resetState(){Object.assign(e,{...C})},async getAssetsForNetwork(t){const n=v(t),s=await m.getAssetsImageAndPrice(n),r=n.map(a=>{var c,o,p,y;const u=a.asset==="native"?f():`${a.network}:${a.asset}`,i=s.find(S=>{var g,d,h;return((h=(d=(g=S.fungibles)==null?void 0:g[0])==null?void 0:d.address)==null?void 0:h.toLowerCase())===u.toLowerCase()});return{...a,price:((o=(c=i==null?void 0:i.fungibles)==null?void 0:c[0])==null?void 0:o.price)||1,metadata:{...a.metadata,iconUrl:(y=(p=i==null?void 0:i.fungibles)==null?void 0:p[0])==null?void 0:y.iconUrl}}});return e.assets=r,r},async getAssetsImageAndPrice(t){const n=t.map(r=>r.asset==="native"?f():`${r.network}:${r.asset}`);return await Promise.all(n.map(r=>x.fetchTokenPrice({addresses:[r]})))},getTokenAmount(){var s;if(!((s=e==null?void 0:e.paymentAsset)!=null&&s.price))throw new Error("Cannot get token price");const t=P.bigNumber(e.amount??0).round(8),n=P.bigNumber(e.paymentAsset.price).round(8);return t.div(n).round(8).toNumber()},setAmount(t){var n;e.amount=t,(n=e.paymentAsset)!=null&&n.price&&(e.tokenAmount=m.getTokenAmount())},setPaymentAsset(t){e.paymentAsset=t},isPayWithExchangeEnabled(){var t;return(t=U.state.remoteFeatures)==null?void 0:t.payWithExchange},isPayWithExchangeSupported(){return m.isPayWithExchangeEnabled()&&l.state.activeCaipNetwork&&k.PAY_WITH_EXCHANGE_SUPPORTED_CHAIN_NAMESPACES.includes(l.state.activeCaipNetwork.chainNamespace)},async fetchExchanges(){var t;try{const n=m.isPayWithExchangeSupported();if(!e.paymentAsset||!n){e.exchanges=[],e.isLoading=!1;return}e.isLoading=!0;const s=await _({page:D,asset:b(e.paymentAsset.network,e.paymentAsset.asset),amount:((t=e.amount)==null?void 0:t.toString())??"0"});e.exchanges=s.exchanges.slice(0,2)}catch{throw A.showError("Unable to get exchanges"),new Error("Unable to get exchanges")}finally{e.isLoading=!1}},async getPayUrl(t,n){try{const s=Number(n.amount),r=await W({exchangeId:t,asset:b(n.network,n.asset),amount:s.toString(),recipient:`${n.network}:${n.recipient}`});return w.sendEvent({type:"track",event:"PAY_EXCHANGE_SELECTED",properties:{exchange:{id:t},configuration:{network:n.network,asset:n.asset,recipient:n.recipient,amount:s},currentPayment:{type:"exchange",exchangeId:t},source:"fund-from-exchange",headless:!1}}),r}catch(s){throw s instanceof Error&&s.message.includes("is not supported")?new Error("Asset not supported"):new Error(s.message)}},async handlePayWithExchange(t){var n;try{const s=(n=l.getAccountData())==null?void 0:n.address;if(!s)throw new Error("No account connected");if(!e.paymentAsset)throw new Error("No payment asset selected");const r=E.returnOpenHref("","popupWindow","scrollbar=yes,width=480,height=720");if(!r)throw new Error("Could not create popup window");e.isPaymentInProgress=!0,e.paymentId=crypto.randomUUID(),e.currentPayment={type:"exchange",exchangeId:t};const{network:a,asset:u}=e.paymentAsset,i={network:a,asset:u,amount:e.tokenAmount,recipient:s},c=await m.getPayUrl(t,i);if(!c){try{r.close()}catch(o){console.error("Unable to close popup window",o)}throw new Error("Unable to initiate payment")}e.currentPayment.sessionId=c.sessionId,e.currentPayment.status="IN_PROGRESS",e.currentPayment.exchangeId=t,r.location.href=c.url}catch{e.error="Unable to initiate payment",A.showError(e.error)}},async waitUntilComplete({exchangeId:t,sessionId:n,paymentId:s,retries:r=20}){const a=await m.getBuyStatus(t,n,s);if(a.status==="SUCCESS"||a.status==="FAILED")return a;if(r===0)throw new Error("Unable to get deposit status");return await new Promise(u=>{setTimeout(u,5e3)}),m.waitUntilComplete({exchangeId:t,sessionId:n,paymentId:s,retries:r-1})},async getBuyStatus(t,n,s){var r,a,u,i,c;try{if(!e.currentPayment)throw new Error("No current payment");const o=await T({sessionId:n,exchangeId:t});if(e.currentPayment.status=o.status,o.status==="SUCCESS"||o.status==="FAILED"){const p=(r=l.getAccountData())==null?void 0:r.address;e.currentPayment.result=o.txHash,e.isPaymentInProgress=!1,w.sendEvent({type:"track",event:o.status==="SUCCESS"?"PAY_SUCCESS":"PAY_ERROR",properties:{message:o.status==="FAILED"?E.parseError(e.error):void 0,source:"fund-from-exchange",paymentId:s,configuration:{network:((a=e.paymentAsset)==null?void 0:a.network)||"",asset:((u=e.paymentAsset)==null?void 0:u.asset)||"",recipient:p||"",amount:e.amount??0},currentPayment:{type:"exchange",exchangeId:(i=e.currentPayment)==null?void 0:i.exchangeId,sessionId:(c=e.currentPayment)==null?void 0:c.sessionId,result:o.txHash}}})}return o}catch{return{status:"UNKNOWN",txHash:""}}},reset(){e.currentPayment=void 0,e.isPaymentInProgress=!1,e.paymentId="",e.paymentAsset=null,e.amount=0,e.tokenAmount=0,e.priceLoading=!1,e.error=null,e.exchanges=[],e.isLoading=!1}};export{m as E};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RealCheckout-DVYTPQMi.js","assets/react-E8ng6RF2.js","assets/index-DDLsPu5_.js","assets/ethers-BxoDGoYp.js","assets/index-xq0r0dow.css"])))=>i.map(i=>d[i]);
2
- import{H as B,c as T,l as D,t as _,s as k,v,C as u,F as V,I as w,_ as A}from"./index-DDLsPu5_.js";import{b as F,r as o,j as e}from"./react-E8ng6RF2.js";import{C}from"./CircularProgress-D-iaLmF3.js";import"./ethers-BxoDGoYp.js";import"./generateUtilityClasses-sji8XAMf.js";const U=.1,E=[{id:"pack_5",usd:5,credits:x(5)},{id:"pack_10",usd:10,credits:x(10)},{id:"pack_25",usd:25,credits:x(25),bestValue:!0},{id:"pack_50",usd:50,credits:x(50)}];function x(t){return Math.round(t/U)}function P(t){return E.find(s=>s.id===t)}const y="mock_cs_";function Y(){return!0}async function z(t,s){const a=P(t);if(!a)throw new Error("Unknown pack");return K(a)}async function q(t,s={}){const{intervalMs:a,timeoutMs:c,signal:n,identity:i}=s;if(t.startsWith(y)||Y())return L(t,s)}function K(t){const s=`${y}${t.id}_${Date.now()}`;return $(400).then(()=>({orderId:s,clientSecret:`${y}${t.id}`,mock:!0}))}async function L(t,s={}){await $(s.intervalMs??900);const a=t.replace(y,"").replace(/_\d+$/,""),c=P(a),n=(c==null?void 0:c.credits)??0;if(s.address&&c)try{const i=await B(s.address,Math.round(c.usd*100));return{status:"credited",creditsGranted:n,newBalance:i.credits}}catch(i){return{status:"failed",error:i.message}}return{status:"credited",creditsGranted:n,newBalance:n}}function $(t,s){return new Promise((a,c)=>{setTimeout(a,t)})}const f="mock",O=o.lazy(()=>A(()=>import("./RealCheckout-DVYTPQMi.js"),__vite__mapDeps([0,1,2,3,4])));function S(t){const s=t;if((s==null?void 0:s.name)==="AbortError")return"You cancelled the request.";const a=((s==null?void 0:s.message)??"").toLowerCase();return a.includes("sign in")?`Sign in to get ${u.name}.`:a.includes("timed out")?`This is taking longer than usual — your ${u.name} will appear shortly.`:"Couldn't complete your purchase — please try again."}function te(){const t=F(),{session:s,signIn:a}=T(),c=D(),[n,i]=o.useState("select"),[r,h]=o.useState(null),[m,N]=o.useState(null),[R,b]=o.useState(null),[G,p]=o.useState(null),j=o.useRef(null);o.useEffect(()=>()=>{var d;return(d=j.current)==null?void 0:d.abort()},[]);const I=o.useCallback(async d=>{if(!s){a();return}p(null),h(d),i("paying"),_("Shop Started Buy Credits",{pack_usd:d.usd,credits:d.credits,provider:f});try{const l=await z(d.id,{address:s.address,identity:s.identity});N(l)}catch(l){k(l,{flow:"get_credits",step:"checkout",provider:f}),_("Shop Buy Credits Failed",{step:"checkout",error_code:v(l),pack_usd:d.usd}),p(S(l)),i("error")}},[s,a]),M=o.useCallback(async()=>{if(!m)return;i("processing");const d=new AbortController;j.current=d;try{const l=await q(m.orderId,{signal:d.signal,address:s==null?void 0:s.address,identity:s==null?void 0:s.identity});l.status==="credited"?(b(l.creditsGranted??(r==null?void 0:r.credits)??0),i("success"),_("Shop Completed Buy Credits",{order_id:m.orderId,pack_usd:(r==null?void 0:r.usd)??null,credits:l.creditsGranted??(r==null?void 0:r.credits)??0,provider:f}),c.invalidateQueries({queryKey:["usd-balance"]})):(_("Shop Buy Credits Failed",{step:"grant",error_code:"grant_failed",pack_usd:(r==null?void 0:r.usd)??null}),p(l.error??`Couldn't add your ${u.name} — please try again.`),i("error"))}catch(l){k(l,{flow:"get_credits",step:"grant",order_id:m.orderId}),_("Shop Buy Credits Failed",{step:"grant",error_code:v(l),pack_usd:(r==null?void 0:r.usd)??null}),p(S(l)),i("error")}},[m,r,s,c]);function g(){var d;(d=j.current)==null||d.abort(),i("select"),h(null),N(null),b(null),p(null)}return e.jsxs("div",{className:"getcredits",children:[e.jsxs("header",{className:"getcredits__head",children:[e.jsxs("h1",{className:"getcredits__title",children:["Get ",u.name]}),e.jsxs("p",{className:"muted",children:["Add ",u.name," to your account to shop. Pay with any card."]})]}),n==="select"&&e.jsx(Q,{onSelect:I}),n==="paying"&&r&&e.jsx(W,{pack:r,checkout:m,onPaid:M,onCancel:g}),n==="processing"&&e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:40}),e.jsxs("p",{className:"getcredits__status-title",children:["Adding your ",u.name,"…"]}),e.jsx("p",{className:"muted",children:"Payment received. Just a moment while we top up your balance."})]}),n==="success"&&e.jsxs("div",{className:"getcredits__status getcredits__status--ok",role:"status","aria-live":"polite",children:[e.jsx("div",{className:"getcredits__confetti","aria-hidden":!0,children:"🎉"}),e.jsx("p",{className:"getcredits__status-title",children:"You’re all set!"}),e.jsxs("p",{className:"muted",children:[e.jsxs("strong",{children:[u.symbol," ",R]})," ",u.name," added to your account."]}),e.jsxs("div",{className:"getcredits__status-actions",children:[e.jsx("button",{className:"btn",onClick:()=>t("/cart"),children:"Back to cart"}),e.jsxs("button",{className:"btn btn--ghost",onClick:g,children:["Get more ",u.name]})]})]}),n==="error"&&e.jsxs("div",{className:"getcredits__status getcredits__status--err",role:"alert",children:[e.jsx("p",{className:"getcredits__status-title",children:"Something went wrong"}),e.jsx("p",{className:"error",children:G}),e.jsx("div",{className:"getcredits__status-actions",children:e.jsx("button",{className:"btn",onClick:g,children:"Try again"})})]})]})}function Q({onSelect:t}){return e.jsx("div",{className:"packs",children:E.map(s=>e.jsxs("button",{type:"button",className:`pack${s.bestValue?" pack--best":""}`,onClick:()=>t(s),"aria-label":`Get ${w(s.credits)} for $${s.usd}`,children:[s.bestValue&&e.jsx("span",{className:"pack__ribbon",children:"Best value"}),e.jsxs("span",{className:"pack__credits",children:[e.jsx(V,{className:"pack__credits-ico"}),s.credits]}),e.jsx("span",{className:"pack__label",children:u.name}),e.jsxs("span",{className:"pack__price",children:["$",s.usd]}),e.jsxs("span",{className:"pack__cta",children:["Get ",u.name]})]},s.id))})}function W({pack:t,checkout:s,onPaid:a,onCancel:c}){return e.jsxs("div",{className:"pay",children:[e.jsxs("div",{className:"pay__summary",children:[e.jsx("button",{className:"link",onClick:c,children:"← Choose a different pack"}),e.jsxs("div",{className:"pay__summary-row",children:[e.jsx("span",{children:"You’ll get"}),e.jsxs("strong",{children:[u.symbol," ",w(t.credits)]})]}),e.jsxs("div",{className:"pay__summary-row pay__summary-row--total",children:[e.jsx("span",{children:"You pay"}),e.jsxs("strong",{children:["$",t.usd]})]})]}),e.jsx("div",{className:"pay__form",children:s?s.mock?e.jsx(H,{onPaid:a,amountUsd:t.usd}):e.jsx(o.Suspense,{fallback:e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:32}),e.jsx("p",{className:"muted",children:"Getting the payment form ready…"})]}),children:e.jsx(O,{clientSecret:s.clientSecret,onComplete:a})}):e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:32}),e.jsx("p",{className:"muted",children:"Getting the payment form ready…"})]})})]})}function H({onPaid:t,amountUsd:s}){const[a,c]=o.useState("4242 4242 4242 4242"),[n,i]=o.useState(!1);function r(){i(!0),setTimeout(()=>t(),700)}return e.jsxs("div",{className:"card-form","aria-label":"Payment details",children:[e.jsx("p",{className:"muted small card-form__note",children:"Demo mode — no real charge is made."}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Card number"}),e.jsx("input",{value:a,onChange:h=>c(h.target.value),disabled:n,inputMode:"numeric"})]}),e.jsxs("div",{className:"card-form__row",children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Expiry"}),e.jsx("input",{defaultValue:"12 / 34",disabled:n})]}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"CVC"}),e.jsx("input",{defaultValue:"123",disabled:n,inputMode:"numeric"})]})]}),e.jsx("button",{className:"btn btn--purple card-form__pay",onClick:r,disabled:n,children:n?"Processing…":`Pay $${s}`})]})}export{te as GetCredits,te as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RealCheckout-Bybyt3-i.js","assets/react-E8ng6RF2.js","assets/index-D9auFFhw.js","assets/ethers-BxoDGoYp.js","assets/index-xq0r0dow.css"])))=>i.map(i=>d[i]);
2
+ import{H as B,c as T,l as D,t as _,s as k,v,C as u,F as V,I as w,_ as A}from"./index-D9auFFhw.js";import{b as F,r as o,j as e}from"./react-E8ng6RF2.js";import{C}from"./CircularProgress-D-iaLmF3.js";import"./ethers-BxoDGoYp.js";import"./generateUtilityClasses-sji8XAMf.js";const U=.1,E=[{id:"pack_5",usd:5,credits:x(5)},{id:"pack_10",usd:10,credits:x(10)},{id:"pack_25",usd:25,credits:x(25),bestValue:!0},{id:"pack_50",usd:50,credits:x(50)}];function x(t){return Math.round(t/U)}function P(t){return E.find(s=>s.id===t)}const y="mock_cs_";function Y(){return!0}async function z(t,s){const a=P(t);if(!a)throw new Error("Unknown pack");return K(a)}async function q(t,s={}){const{intervalMs:a,timeoutMs:c,signal:n,identity:i}=s;if(t.startsWith(y)||Y())return L(t,s)}function K(t){const s=`${y}${t.id}_${Date.now()}`;return $(400).then(()=>({orderId:s,clientSecret:`${y}${t.id}`,mock:!0}))}async function L(t,s={}){await $(s.intervalMs??900);const a=t.replace(y,"").replace(/_\d+$/,""),c=P(a),n=(c==null?void 0:c.credits)??0;if(s.address&&c)try{const i=await B(s.address,Math.round(c.usd*100));return{status:"credited",creditsGranted:n,newBalance:i.credits}}catch(i){return{status:"failed",error:i.message}}return{status:"credited",creditsGranted:n,newBalance:n}}function $(t,s){return new Promise((a,c)=>{setTimeout(a,t)})}const f="mock",O=o.lazy(()=>A(()=>import("./RealCheckout-Bybyt3-i.js"),__vite__mapDeps([0,1,2,3,4])));function S(t){const s=t;if((s==null?void 0:s.name)==="AbortError")return"You cancelled the request.";const a=((s==null?void 0:s.message)??"").toLowerCase();return a.includes("sign in")?`Sign in to get ${u.name}.`:a.includes("timed out")?`This is taking longer than usual — your ${u.name} will appear shortly.`:"Couldn't complete your purchase — please try again."}function te(){const t=F(),{session:s,signIn:a}=T(),c=D(),[n,i]=o.useState("select"),[r,h]=o.useState(null),[m,N]=o.useState(null),[R,b]=o.useState(null),[G,p]=o.useState(null),j=o.useRef(null);o.useEffect(()=>()=>{var d;return(d=j.current)==null?void 0:d.abort()},[]);const I=o.useCallback(async d=>{if(!s){a();return}p(null),h(d),i("paying"),_("Shop Started Buy Credits",{pack_usd:d.usd,credits:d.credits,provider:f});try{const l=await z(d.id,{address:s.address,identity:s.identity});N(l)}catch(l){k(l,{flow:"get_credits",step:"checkout",provider:f}),_("Shop Buy Credits Failed",{step:"checkout",error_code:v(l),pack_usd:d.usd}),p(S(l)),i("error")}},[s,a]),M=o.useCallback(async()=>{if(!m)return;i("processing");const d=new AbortController;j.current=d;try{const l=await q(m.orderId,{signal:d.signal,address:s==null?void 0:s.address,identity:s==null?void 0:s.identity});l.status==="credited"?(b(l.creditsGranted??(r==null?void 0:r.credits)??0),i("success"),_("Shop Completed Buy Credits",{order_id:m.orderId,pack_usd:(r==null?void 0:r.usd)??null,credits:l.creditsGranted??(r==null?void 0:r.credits)??0,provider:f}),c.invalidateQueries({queryKey:["usd-balance"]})):(_("Shop Buy Credits Failed",{step:"grant",error_code:"grant_failed",pack_usd:(r==null?void 0:r.usd)??null}),p(l.error??`Couldn't add your ${u.name} — please try again.`),i("error"))}catch(l){k(l,{flow:"get_credits",step:"grant",order_id:m.orderId}),_("Shop Buy Credits Failed",{step:"grant",error_code:v(l),pack_usd:(r==null?void 0:r.usd)??null}),p(S(l)),i("error")}},[m,r,s,c]);function g(){var d;(d=j.current)==null||d.abort(),i("select"),h(null),N(null),b(null),p(null)}return e.jsxs("div",{className:"getcredits",children:[e.jsxs("header",{className:"getcredits__head",children:[e.jsxs("h1",{className:"getcredits__title",children:["Get ",u.name]}),e.jsxs("p",{className:"muted",children:["Add ",u.name," to your account to shop. Pay with any card."]})]}),n==="select"&&e.jsx(Q,{onSelect:I}),n==="paying"&&r&&e.jsx(W,{pack:r,checkout:m,onPaid:M,onCancel:g}),n==="processing"&&e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:40}),e.jsxs("p",{className:"getcredits__status-title",children:["Adding your ",u.name,"…"]}),e.jsx("p",{className:"muted",children:"Payment received. Just a moment while we top up your balance."})]}),n==="success"&&e.jsxs("div",{className:"getcredits__status getcredits__status--ok",role:"status","aria-live":"polite",children:[e.jsx("div",{className:"getcredits__confetti","aria-hidden":!0,children:"🎉"}),e.jsx("p",{className:"getcredits__status-title",children:"You’re all set!"}),e.jsxs("p",{className:"muted",children:[e.jsxs("strong",{children:[u.symbol," ",R]})," ",u.name," added to your account."]}),e.jsxs("div",{className:"getcredits__status-actions",children:[e.jsx("button",{className:"btn",onClick:()=>t("/cart"),children:"Back to cart"}),e.jsxs("button",{className:"btn btn--ghost",onClick:g,children:["Get more ",u.name]})]})]}),n==="error"&&e.jsxs("div",{className:"getcredits__status getcredits__status--err",role:"alert",children:[e.jsx("p",{className:"getcredits__status-title",children:"Something went wrong"}),e.jsx("p",{className:"error",children:G}),e.jsx("div",{className:"getcredits__status-actions",children:e.jsx("button",{className:"btn",onClick:g,children:"Try again"})})]})]})}function Q({onSelect:t}){return e.jsx("div",{className:"packs",children:E.map(s=>e.jsxs("button",{type:"button",className:`pack${s.bestValue?" pack--best":""}`,onClick:()=>t(s),"aria-label":`Get ${w(s.credits)} for $${s.usd}`,children:[s.bestValue&&e.jsx("span",{className:"pack__ribbon",children:"Best value"}),e.jsxs("span",{className:"pack__credits",children:[e.jsx(V,{className:"pack__credits-ico"}),s.credits]}),e.jsx("span",{className:"pack__label",children:u.name}),e.jsxs("span",{className:"pack__price",children:["$",s.usd]}),e.jsxs("span",{className:"pack__cta",children:["Get ",u.name]})]},s.id))})}function W({pack:t,checkout:s,onPaid:a,onCancel:c}){return e.jsxs("div",{className:"pay",children:[e.jsxs("div",{className:"pay__summary",children:[e.jsx("button",{className:"link",onClick:c,children:"← Choose a different pack"}),e.jsxs("div",{className:"pay__summary-row",children:[e.jsx("span",{children:"You’ll get"}),e.jsxs("strong",{children:[u.symbol," ",w(t.credits)]})]}),e.jsxs("div",{className:"pay__summary-row pay__summary-row--total",children:[e.jsx("span",{children:"You pay"}),e.jsxs("strong",{children:["$",t.usd]})]})]}),e.jsx("div",{className:"pay__form",children:s?s.mock?e.jsx(H,{onPaid:a,amountUsd:t.usd}):e.jsx(o.Suspense,{fallback:e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:32}),e.jsx("p",{className:"muted",children:"Getting the payment form ready…"})]}),children:e.jsx(O,{clientSecret:s.clientSecret,onComplete:a})}):e.jsxs("div",{className:"getcredits__status",role:"status","aria-live":"polite",children:[e.jsx(C,{size:32}),e.jsx("p",{className:"muted",children:"Getting the payment form ready…"})]})})]})}function H({onPaid:t,amountUsd:s}){const[a,c]=o.useState("4242 4242 4242 4242"),[n,i]=o.useState(!1);function r(){i(!0),setTimeout(()=>t(),700)}return e.jsxs("div",{className:"card-form","aria-label":"Payment details",children:[e.jsx("p",{className:"muted small card-form__note",children:"Demo mode — no real charge is made."}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Card number"}),e.jsx("input",{value:a,onChange:h=>c(h.target.value),disabled:n,inputMode:"numeric"})]}),e.jsxs("div",{className:"card-form__row",children:[e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"Expiry"}),e.jsx("input",{defaultValue:"12 / 34",disabled:n})]}),e.jsxs("label",{className:"field",children:[e.jsx("span",{children:"CVC"}),e.jsx("input",{defaultValue:"123",disabled:n,inputMode:"numeric"})]})]}),e.jsx("button",{className:"btn btn--purple card-form__pay",onClick:r,disabled:n,children:n?"Processing…":`Pay $${s}`})]})}export{te as GetCredits,te as default};
@@ -1,4 +1,4 @@
1
- import{i as f,b as h}from"./lit-element-B3y9oplH.js";import{n as m}from"./class-map-CxwNmq0D.js";import{c as p}from"./index-CrBV_1yu.js";import{d as g,r as v}from"./index-CyqLliR_.js";import{C as c}from"./ConstantsUtil-CkFCQ14z.js";import{R as $,O as u}from"./W3MFrameProviderSingleton-DBf03HGk.js";import{au as y}from"./NetworkUtil-DRBYr7tG.js";const b=g`
1
+ import{i as f,b as h}from"./lit-element-B3y9oplH.js";import{n as m}from"./class-map-CxwNmq0D.js";import{c as p}from"./index-C65BwbSl.js";import{d as g,r as v}from"./index-Y2-1znwX.js";import{C as c}from"./ConstantsUtil-CkFCQ14z.js";import{R as $,O as u}from"./W3MFrameProviderSingleton-DWW0KqqF.js";import{au as y}from"./NetworkUtil-DRBYr7tG.js";const b=g`
2
2
  :host {
3
3
  display: flex;
4
4
  justify-content: center;
@@ -1 +1 @@
1
- import{b as L,r as d,j as e,L as E}from"./react-E8ng6RF2.js";import{t as M,s as Q,C as m,c as A,l as K,e as F,G as P}from"./index-DDLsPu5_.js";import{i as R,f as Y}from"./import-DjExR-_c.js";import{s as W}from"./wallet-kind-By432Wm8.js";import"./ethers-BxoDGoYp.js";import"./buy-qVYsiH8c.js";import"./index-0QSHJ5kM.js";import"./mana-rate-D91Nq-wO.js";function G({queue:n,session:k,onClose:N,onDone:_}){const f=L(),r=W(k.providerType),[c,y]=d.useState(()=>n.map(()=>"pending")),[b,C]=d.useState("running"),I=d.useRef(!1);d.useEffect(()=>{if(I.current)return;I.current=!0;let a=!1;return(async()=>{for(let i=0;i<n.length;i++){if(a)return;y(o=>o.map((h,u)=>u===i?"active":h));try{await R(n[i].item,n[i].priceCredits,k),M("Shop Migrated Listing",{item_id:n[i].item.itemId??n[i].item.oldTradeId??null,contract_address:n[i].item.contractAddress,new_price_credits:n[i].priceCredits,new_price_usd:n[i].priceCredits/10}),a||y(o=>o.map((h,u)=>u===i?"done":h))}catch(o){const h=o,u=h.code===4001||/reject|denied|cancel/i.test(h.message??"");u||Q(o,{flow:"import_listing",itemId:n[i].item.itemId??n[i].item.oldTradeId}),a||y(S=>S.map((w,t)=>t===i?u?"skipped":"failed":w))}}a||C("finished")})(),()=>{a=!0}},[]);const p=c.filter(a=>a==="done").length,x=c.findIndex(a=>a==="active"),g=Math.round(c.filter(a=>a!=="pending"&&a!=="active").length/n.length*100);function j(){_(),N()}if(b==="finished"){const a=c.filter(i=>i==="skipped"||i==="failed").length;return e.jsx("div",{className:"modal-backdrop",role:"presentation",children:e.jsxs("div",{className:"modal modal--success",role:"dialog","aria-modal":"true",children:[e.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),e.jsx("h2",{className:"modal__title",children:p>0?"You're in the Shop! 🎉":"Nothing listed"}),e.jsxs("p",{className:"muted",style:{margin:0},children:[p>0?`${p} ${p===1?"item is":"items are"} now for sale with ${m.name}.`:"No items were listed.",a>0?` ${a} skipped — you can try those again anytime.`:""]}),e.jsxs("div",{className:"modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:j,children:"Done"}),p>0?e.jsx("button",{className:"btn btn--purple",onClick:()=>{_(),N(),f("/assets")},children:"View in Shop"}):null]})]})})}return e.jsx("div",{className:"modal-backdrop",role:"presentation",children:e.jsxs("div",{className:"modal migrate",role:"dialog","aria-modal":"true","aria-live":"polite",children:[e.jsx("h2",{className:"modal__title",children:"Listing your items"}),e.jsxs("p",{className:"muted small",style:{margin:"0 0 4px"},children:[r?"Confirm each item to add it to the Shop.":"Adding your items to the Shop."," ",x>=0?`${x+1} of ${n.length}`:""]}),e.jsx("div",{className:"migrate__progress",children:e.jsx("div",{className:"migrate__bar",style:{width:`${g}%`}})}),e.jsx("ul",{className:"migrate__list",children:n.map((a,i)=>e.jsxs("li",{className:`migrate__row migrate__row--${c[i]}`,children:[e.jsx("span",{className:"migrate__thumb",children:a.item.thumbnail?e.jsx("img",{src:a.item.thumbnail,alt:""}):null}),e.jsx("span",{className:"migrate__name",title:a.item.name,children:a.item.name||"Item"}),e.jsxs("span",{className:"migrate__price",children:[m.symbol," ",a.priceCredits.toLocaleString()]}),e.jsx("span",{className:"migrate__status",children:c[i]==="active"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner migrate__spin","aria-hidden":!0})," ",r?"Confirm…":"Adding…"]}):c[i]==="done"?e.jsx("span",{className:"migrate__tick",children:"✓"}):c[i]==="skipped"?e.jsx("span",{className:"migrate__skip",children:"Skipped"}):c[i]==="failed"?e.jsx("span",{className:"migrate__skip",children:"Failed"}):e.jsx("span",{className:"migrate__wait",children:"Waiting"})})]},a.item.oldTradeId))}),e.jsx("p",{className:"muted small migrate__hint",children:r?"A quick confirmation pops up for each item. Keep this open.":"This only takes a moment — keep this open."})]})})}const O=[{key:"creations",title:"Your creations",sub:"Items you made. Put them on sale in the Shop."},{key:"owned",title:"Items you own",sub:"Things you've bought elsewhere — resell them in the Shop."}];function Z(){const{session:n,signIn:k,restore:N}=A(),_=K(),f=n==null?void 0:n.address;d.useEffect(()=>{N()},[N]);const{data:r,isLoading:c}=F({queryKey:["importable",f],queryFn:()=>Y(f),enabled:!!f}),[y,b]=d.useState({}),[C,I]=d.useState(new Set),[p,x]=d.useState(null),g=d.useMemo(()=>[...(r==null?void 0:r.creations)??[],...(r==null?void 0:r.owned)??[]],[r]);d.useEffect(()=>{g.length&&b(t=>{const l={...t};for(const s of g)l[s.oldTradeId]==null&&(l[s.oldTradeId]=s.suggestedCredits);return l})},[g]);const j=t=>!C.has(t),a=t=>y[t.oldTradeId]??t.suggestedCredits,i=g.filter(t=>j(t.oldTradeId)),o=i.reduce((t,l)=>t+a(l),0);function h(t,l){const s=l.replace(/[^\d]/g,"");b(v=>({...v,[t]:s===""?0:parseInt(s,10)}))}function u(t){I(l=>{const s=new Set(l);return s.has(t)?s.delete(t):s.add(t),s})}function S(t){return t.map(l=>({item:l,priceCredits:Math.max(1,a(l))}))}function w(){_.invalidateQueries({queryKey:["importable"]}),_.invalidateQueries({queryKey:["listings"]}),_.invalidateQueries({queryKey:["my-assets"]}),_.invalidateQueries({queryKey:["collection-sale-state"]}),P.success("Your Shop is updated.")}return n?!c&&g.length===0?e.jsxs("div",{className:"imp-empty",children:[e.jsx("span",{className:"imp-empty__ico","aria-hidden":!0,children:"✨"}),e.jsx("h1",{className:"imp-empty__title",children:"You're all caught up"}),e.jsx("p",{className:"muted",children:"Everything you sell is already in the Shop — nothing to import."}),e.jsx(E,{className:"btn btn--purple",to:"/my-assets",children:"Go to My Assets"})]}):e.jsxs("div",{className:"imp",children:[e.jsxs("header",{className:"imp__head",children:[e.jsx("span",{className:"imp__eyebrow",children:"Import to the Shop"}),e.jsxs("h1",{className:"imp__title",children:["Bring your listings ",e.jsx("span",{className:"imp__grad",children:"into the Shop"})]}),e.jsxs("p",{className:"imp__lede",children:["These items are already for sale elsewhere. We suggested a price in ",m.name," for each — matched to today's rate and rounded up. Adjust anything, then list them."]})]}),e.jsxs("div",{className:"imp__ratebar",children:[e.jsx("span",{className:"imp__diamond",children:m.symbol})," 1 ",m.nameSingular," = $0.10 · prices rounded up"]}),c?e.jsx("div",{className:"imp__list",children:Array.from({length:4}).map((t,l)=>e.jsx("div",{className:"imp-row imp-row--skeleton"},l))}):O.map(t=>{const l=(r==null?void 0:r[t.key])??[];return l.length===0?null:e.jsxs("section",{className:"imp__section",children:[e.jsxs("div",{className:"imp__section-head",children:[e.jsx("h2",{className:"imp__section-title",children:t.title}),e.jsx("span",{className:"imp__section-sub",children:t.sub})]}),e.jsx("div",{className:"imp__list",children:l.map(s=>{const v=a(s),$=v!==s.suggestedCredits;return e.jsxs("article",{className:`imp-row${j(s.oldTradeId)?"":" is-off"}`,children:[e.jsx("input",{type:"checkbox",className:"imp-check",checked:j(s.oldTradeId),onChange:()=>u(s.oldTradeId),"aria-label":`Include ${s.name}`}),e.jsx("div",{className:"imp-thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:""}):null}),e.jsxs("div",{className:"imp-meta",children:[e.jsx("div",{className:"imp-name",title:s.name,children:s.name||"Item"}),e.jsx("span",{className:"imp-chip",children:s.rarity})]}),e.jsxs("div",{className:"imp-price",children:[e.jsxs("div",{className:"imp-price__field",children:[e.jsx("span",{className:"imp-price__diamond","aria-hidden":!0,children:m.symbol}),e.jsx("input",{className:"imp-price__input",inputMode:"numeric",value:v.toLocaleString(),onChange:T=>h(s.oldTradeId,T.target.value),"aria-label":`Price in ${m.name} for ${s.name}`})]}),e.jsxs("div",{className:"imp-price__sub",children:[e.jsxs("span",{children:["$",(v*.1).toFixed(2)]}),$?e.jsxs("button",{className:"imp-price__reset",onClick:()=>b(T=>({...T,[s.oldTradeId]:s.suggestedCredits})),children:["Reset to ",m.symbol,s.suggestedCredits.toLocaleString()]}):null]})]}),e.jsx("div",{className:"imp-action",children:e.jsx("button",{className:"btn btn--sm imp-row__list",disabled:!j(s.oldTradeId),onClick:()=>x(S([s])),children:"List"})})]},s.oldTradeId)})})]},t.key)}),e.jsx("div",{className:"imp-dock",children:e.jsxs("div",{className:"imp-dock__inner",children:[e.jsxs("div",{className:"imp-dock__summary",children:[e.jsxs("div",{className:"imp-dock__total",children:[e.jsx("span",{className:"imp__diamond",children:m.symbol})," ",o.toLocaleString()]}),e.jsxs("div",{className:"imp-dock__sub",children:[i.length," item",i.length===1?"":"s"," selected · $",(o*.1).toFixed(2)]})]}),e.jsx("span",{className:"imp-dock__spacer"}),e.jsxs("button",{className:"btn btn--purple imp-dock__cta",disabled:i.length===0,onClick:()=>x(S(i)),children:["List all (",i.length,")"]})]})}),p&&n?e.jsx(G,{queue:p,session:n,onClose:()=>x(null),onDone:w}):null]}):e.jsxs("div",{className:"imp-empty",children:[e.jsx("span",{className:"imp-empty__ico","aria-hidden":!0,children:"📦"}),e.jsx("h1",{className:"imp-empty__title",children:"Import your listings"}),e.jsx("p",{className:"muted",children:"Sign in to bring the items you already sell into the Shop."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>k(),children:"Sign in"})]})}export{Z as ImportListings};
1
+ import{b as L,r as d,j as e,L as E}from"./react-E8ng6RF2.js";import{t as M,s as Q,C as m,c as A,l as K,e as F,G as P}from"./index-D9auFFhw.js";import{i as R,f as Y}from"./import-CM2Acb8u.js";import{s as W}from"./wallet-kind-Ct-yzkUJ.js";import"./ethers-BxoDGoYp.js";import"./buy-Fa44beN-.js";import"./index-D6de3csH.js";import"./mana-rate-ht8qDfqA.js";function G({queue:n,session:k,onClose:N,onDone:_}){const f=L(),r=W(k.providerType),[c,y]=d.useState(()=>n.map(()=>"pending")),[b,C]=d.useState("running"),I=d.useRef(!1);d.useEffect(()=>{if(I.current)return;I.current=!0;let a=!1;return(async()=>{for(let i=0;i<n.length;i++){if(a)return;y(o=>o.map((h,u)=>u===i?"active":h));try{await R(n[i].item,n[i].priceCredits,k),M("Shop Migrated Listing",{item_id:n[i].item.itemId??n[i].item.oldTradeId??null,contract_address:n[i].item.contractAddress,new_price_credits:n[i].priceCredits,new_price_usd:n[i].priceCredits/10}),a||y(o=>o.map((h,u)=>u===i?"done":h))}catch(o){const h=o,u=h.code===4001||/reject|denied|cancel/i.test(h.message??"");u||Q(o,{flow:"import_listing",itemId:n[i].item.itemId??n[i].item.oldTradeId}),a||y(S=>S.map((w,t)=>t===i?u?"skipped":"failed":w))}}a||C("finished")})(),()=>{a=!0}},[]);const p=c.filter(a=>a==="done").length,x=c.findIndex(a=>a==="active"),g=Math.round(c.filter(a=>a!=="pending"&&a!=="active").length/n.length*100);function j(){_(),N()}if(b==="finished"){const a=c.filter(i=>i==="skipped"||i==="failed").length;return e.jsx("div",{className:"modal-backdrop",role:"presentation",children:e.jsxs("div",{className:"modal modal--success",role:"dialog","aria-modal":"true",children:[e.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),e.jsx("h2",{className:"modal__title",children:p>0?"You're in the Shop! 🎉":"Nothing listed"}),e.jsxs("p",{className:"muted",style:{margin:0},children:[p>0?`${p} ${p===1?"item is":"items are"} now for sale with ${m.name}.`:"No items were listed.",a>0?` ${a} skipped — you can try those again anytime.`:""]}),e.jsxs("div",{className:"modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:j,children:"Done"}),p>0?e.jsx("button",{className:"btn btn--purple",onClick:()=>{_(),N(),f("/assets")},children:"View in Shop"}):null]})]})})}return e.jsx("div",{className:"modal-backdrop",role:"presentation",children:e.jsxs("div",{className:"modal migrate",role:"dialog","aria-modal":"true","aria-live":"polite",children:[e.jsx("h2",{className:"modal__title",children:"Listing your items"}),e.jsxs("p",{className:"muted small",style:{margin:"0 0 4px"},children:[r?"Confirm each item to add it to the Shop.":"Adding your items to the Shop."," ",x>=0?`${x+1} of ${n.length}`:""]}),e.jsx("div",{className:"migrate__progress",children:e.jsx("div",{className:"migrate__bar",style:{width:`${g}%`}})}),e.jsx("ul",{className:"migrate__list",children:n.map((a,i)=>e.jsxs("li",{className:`migrate__row migrate__row--${c[i]}`,children:[e.jsx("span",{className:"migrate__thumb",children:a.item.thumbnail?e.jsx("img",{src:a.item.thumbnail,alt:""}):null}),e.jsx("span",{className:"migrate__name",title:a.item.name,children:a.item.name||"Item"}),e.jsxs("span",{className:"migrate__price",children:[m.symbol," ",a.priceCredits.toLocaleString()]}),e.jsx("span",{className:"migrate__status",children:c[i]==="active"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"spinner migrate__spin","aria-hidden":!0})," ",r?"Confirm…":"Adding…"]}):c[i]==="done"?e.jsx("span",{className:"migrate__tick",children:"✓"}):c[i]==="skipped"?e.jsx("span",{className:"migrate__skip",children:"Skipped"}):c[i]==="failed"?e.jsx("span",{className:"migrate__skip",children:"Failed"}):e.jsx("span",{className:"migrate__wait",children:"Waiting"})})]},a.item.oldTradeId))}),e.jsx("p",{className:"muted small migrate__hint",children:r?"A quick confirmation pops up for each item. Keep this open.":"This only takes a moment — keep this open."})]})})}const O=[{key:"creations",title:"Your creations",sub:"Items you made. Put them on sale in the Shop."},{key:"owned",title:"Items you own",sub:"Things you've bought elsewhere — resell them in the Shop."}];function Z(){const{session:n,signIn:k,restore:N}=A(),_=K(),f=n==null?void 0:n.address;d.useEffect(()=>{N()},[N]);const{data:r,isLoading:c}=F({queryKey:["importable",f],queryFn:()=>Y(f),enabled:!!f}),[y,b]=d.useState({}),[C,I]=d.useState(new Set),[p,x]=d.useState(null),g=d.useMemo(()=>[...(r==null?void 0:r.creations)??[],...(r==null?void 0:r.owned)??[]],[r]);d.useEffect(()=>{g.length&&b(t=>{const l={...t};for(const s of g)l[s.oldTradeId]==null&&(l[s.oldTradeId]=s.suggestedCredits);return l})},[g]);const j=t=>!C.has(t),a=t=>y[t.oldTradeId]??t.suggestedCredits,i=g.filter(t=>j(t.oldTradeId)),o=i.reduce((t,l)=>t+a(l),0);function h(t,l){const s=l.replace(/[^\d]/g,"");b(v=>({...v,[t]:s===""?0:parseInt(s,10)}))}function u(t){I(l=>{const s=new Set(l);return s.has(t)?s.delete(t):s.add(t),s})}function S(t){return t.map(l=>({item:l,priceCredits:Math.max(1,a(l))}))}function w(){_.invalidateQueries({queryKey:["importable"]}),_.invalidateQueries({queryKey:["listings"]}),_.invalidateQueries({queryKey:["my-assets"]}),_.invalidateQueries({queryKey:["collection-sale-state"]}),P.success("Your Shop is updated.")}return n?!c&&g.length===0?e.jsxs("div",{className:"imp-empty",children:[e.jsx("span",{className:"imp-empty__ico","aria-hidden":!0,children:"✨"}),e.jsx("h1",{className:"imp-empty__title",children:"You're all caught up"}),e.jsx("p",{className:"muted",children:"Everything you sell is already in the Shop — nothing to import."}),e.jsx(E,{className:"btn btn--purple",to:"/my-assets",children:"Go to My Assets"})]}):e.jsxs("div",{className:"imp",children:[e.jsxs("header",{className:"imp__head",children:[e.jsx("span",{className:"imp__eyebrow",children:"Import to the Shop"}),e.jsxs("h1",{className:"imp__title",children:["Bring your listings ",e.jsx("span",{className:"imp__grad",children:"into the Shop"})]}),e.jsxs("p",{className:"imp__lede",children:["These items are already for sale elsewhere. We suggested a price in ",m.name," for each — matched to today's rate and rounded up. Adjust anything, then list them."]})]}),e.jsxs("div",{className:"imp__ratebar",children:[e.jsx("span",{className:"imp__diamond",children:m.symbol})," 1 ",m.nameSingular," = $0.10 · prices rounded up"]}),c?e.jsx("div",{className:"imp__list",children:Array.from({length:4}).map((t,l)=>e.jsx("div",{className:"imp-row imp-row--skeleton"},l))}):O.map(t=>{const l=(r==null?void 0:r[t.key])??[];return l.length===0?null:e.jsxs("section",{className:"imp__section",children:[e.jsxs("div",{className:"imp__section-head",children:[e.jsx("h2",{className:"imp__section-title",children:t.title}),e.jsx("span",{className:"imp__section-sub",children:t.sub})]}),e.jsx("div",{className:"imp__list",children:l.map(s=>{const v=a(s),$=v!==s.suggestedCredits;return e.jsxs("article",{className:`imp-row${j(s.oldTradeId)?"":" is-off"}`,children:[e.jsx("input",{type:"checkbox",className:"imp-check",checked:j(s.oldTradeId),onChange:()=>u(s.oldTradeId),"aria-label":`Include ${s.name}`}),e.jsx("div",{className:"imp-thumb",children:s.thumbnail?e.jsx("img",{src:s.thumbnail,alt:""}):null}),e.jsxs("div",{className:"imp-meta",children:[e.jsx("div",{className:"imp-name",title:s.name,children:s.name||"Item"}),e.jsx("span",{className:"imp-chip",children:s.rarity})]}),e.jsxs("div",{className:"imp-price",children:[e.jsxs("div",{className:"imp-price__field",children:[e.jsx("span",{className:"imp-price__diamond","aria-hidden":!0,children:m.symbol}),e.jsx("input",{className:"imp-price__input",inputMode:"numeric",value:v.toLocaleString(),onChange:T=>h(s.oldTradeId,T.target.value),"aria-label":`Price in ${m.name} for ${s.name}`})]}),e.jsxs("div",{className:"imp-price__sub",children:[e.jsxs("span",{children:["$",(v*.1).toFixed(2)]}),$?e.jsxs("button",{className:"imp-price__reset",onClick:()=>b(T=>({...T,[s.oldTradeId]:s.suggestedCredits})),children:["Reset to ",m.symbol,s.suggestedCredits.toLocaleString()]}):null]})]}),e.jsx("div",{className:"imp-action",children:e.jsx("button",{className:"btn btn--sm imp-row__list",disabled:!j(s.oldTradeId),onClick:()=>x(S([s])),children:"List"})})]},s.oldTradeId)})})]},t.key)}),e.jsx("div",{className:"imp-dock",children:e.jsxs("div",{className:"imp-dock__inner",children:[e.jsxs("div",{className:"imp-dock__summary",children:[e.jsxs("div",{className:"imp-dock__total",children:[e.jsx("span",{className:"imp__diamond",children:m.symbol})," ",o.toLocaleString()]}),e.jsxs("div",{className:"imp-dock__sub",children:[i.length," item",i.length===1?"":"s"," selected · $",(o*.1).toFixed(2)]})]}),e.jsx("span",{className:"imp-dock__spacer"}),e.jsxs("button",{className:"btn btn--purple imp-dock__cta",disabled:i.length===0,onClick:()=>x(S(i)),children:["List all (",i.length,")"]})]})}),p&&n?e.jsx(G,{queue:p,session:n,onClose:()=>x(null),onDone:w}):null]}):e.jsxs("div",{className:"imp-empty",children:[e.jsx("span",{className:"imp-empty__ico","aria-hidden":!0,children:"📦"}),e.jsx("h1",{className:"imp-empty__title",children:"Import your listings"}),e.jsx("p",{className:"muted",children:"Sign in to bring the items you already sell into the Shop."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>k(),children:"Sign in"})]})}export{Z as ImportListings};
@@ -1 +1 @@
1
- import{j as e,r as o,a as ne,d as le,b as de}from"./react-E8ng6RF2.js";import{c as V,O as oe,W as ue,y as E,i as O,j as S,F as K,G as me,k as he,e as F,t as L,P as fe,R as _e,a as pe,C as Y,h as xe,x as ve,o as be,q as je,r as G,s as Ie,w as Ne,m as ye,v as ge,b as we,S as ke,n as Ce}from"./index-DDLsPu5_.js";import{h as U}from"./buy-qVYsiH8c.js";import{g as Ae,a as Ee,w as Se,G as Te}from"./buy-gasless-EwLKJESl.js";import"./ethers-BxoDGoYp.js";import"./index-0QSHJ5kM.js";function Pe({item:i}){const c=V(b=>{var l;return(l=b.session)==null?void 0:l.address}),{data:r}=oe(c),m=c&&r?c:"default",f=i.category==="emote";return e.jsx(ue,{id:"shop-item-preview",contractAddress:i.contractAddress,tokenId:i.tokenId??void 0,itemId:i.tokenId?void 0:i.itemId??void 0,profile:m,type:f?void 0:E.PreviewType.AVATAR,emote:f?void 0:E.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:f?1.5:void 0,wheelStart:f?100:void 0,dev:O.chainId===80002,disableFadeEffect:!0},i.id)}function Re(i){return i==="male"?"♂":i==="female"?"♀":i==="unisex"?"⚥":""}function $e({title:i,items:c,activeId:r,onSelect:m,onViewAll:f}){const b=o.useRef(null),l=S(a=>a.add),g=S(a=>a.items.map(u=>u.id));if(c.length===0)return null;function s(a){l(a,"carousel"),me.success(`“${a.name}” added to your cart.`)}function j(a){const u=b.current;u&&u.scrollBy({left:a*Math.round(u.clientWidth*.8),behavior:"smooth"})}return e.jsxs("section",{className:"collection-carousel",children:[e.jsxs("div",{className:"collection-carousel__head",children:[e.jsx("h2",{className:"collection-carousel__title",children:i}),e.jsxs("div",{className:"collection-carousel__head-right",children:[f?e.jsx("button",{className:"collection-carousel__viewall",onClick:f,children:"View all"}):null,e.jsxs("div",{className:"collection-carousel__arrows",children:[e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>j(-1),"aria-label":"Scroll left",children:"‹"}),e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>j(1),"aria-label":"Scroll right",children:"›"})]})]})]}),e.jsx("div",{className:"collection-carousel__track",ref:b,children:c.map(a=>{const u=Re(a.gender),w=a.id===r,I=a.priceCredits>0,p=g.includes(a.id);return e.jsxs("article",{className:`collection-carousel__card${w?" is-active":""}`,onClick:()=>m(a),role:"button",tabIndex:0,"aria-current":w||void 0,onKeyDown:h=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),m(a))},children:[e.jsxs("div",{className:"collection-carousel__media",children:[a.thumbnail?e.jsx("img",{className:"collection-carousel__img",src:a.thumbnail,alt:a.name,loading:"lazy"}):null,I?e.jsx("button",{className:"collection-carousel__add",disabled:p,"aria-label":p?"In cart":`Add ${a.name} to cart`,title:p?"In cart":"Add to cart",onClick:h=>{h.stopPropagation(),p||s(a)},children:e.jsx("span",{className:`ico ${p?"ico-cart-solid":"ico-cart"}`,"aria-hidden":!0})}):null]}),e.jsxs("div",{className:"collection-carousel__body",children:[e.jsx("div",{className:"collection-carousel__name",title:a.name,children:a.name}),e.jsxs("div",{className:"collection-carousel__meta",children:[I?e.jsxs("span",{className:"collection-carousel__price",children:[e.jsx(K,{className:"collection-carousel__diamond"}),a.priceCredits]}):e.jsx("span",{className:"collection-carousel__price collection-carousel__na",children:"Not listed"}),e.jsxs("span",{className:"collection-carousel__chips",children:[e.jsx("span",{className:"chip chip--rarity",children:a.rarity}),u?e.jsx("span",{className:"chip chip--icon",children:u}):null]})]})]})]},a.id)})})]})}function Fe(i){return Object.values(E.Rarity).includes(i)}function Le(i){return i==="male"?"Male":i==="female"?"Female":i==="unisex"?"Unisex":null}function Be(i){const c=i,r=(c.message??"").toLowerCase();return c.code===4001||r.includes("reject")||r.includes("denied")||r.includes("cancel")?"You cancelled the request.":r.includes("insufficient")?`You don't have enough ${Y.name} — get more first.`:r.includes("no active listing")||r.includes("not for sale")?"This item is not for sale right now.":"Couldn't complete checkout — please try again."}function Oe(){const{contractAddress:i,tokenId:c}=ne(),{state:r}=le(),m=de(),f=S(t=>t.add),b=S(t=>t.items),{session:l}=V(),{data:g}=he(l),[s,j]=o.useState(()=>r!=null&&r.item?{...r.item,tradeId:r.tradeId??r.item.tradeId}:{id:`${i}-${c}`,name:"",creator:"",contractAddress:i??"",itemId:null,category:"wearable",rarity:"common",network:"MATIC",chainId:O.chainId,thumbnail:"",priceCredits:0,gender:null,tokenId:c??void 0,tradeId:r==null?void 0:r.tradeId}),[a,u]=o.useState(!1),[w,I]=o.useState(null),[p,h]=o.useState(null),{data:N=[],isFetched:z}=F({queryKey:["collection-items",s.contractAddress],enabled:!!s.contractAddress,queryFn:()=>we(s.contractAddress,{first:20}).then(t=>t.items)}),{data:T,isLoading:D}=F({queryKey:["shop-item",s.contractAddress,c],enabled:!(r!=null&&r.item)&&!!s.contractAddress&&!!c,queryFn:()=>ke(s.contractAddress,c)});o.useEffect(()=>{T&&j(t=>t.tradeId?t:{...T})},[T]),o.useEffect(()=>{if(s.name||N.length===0)return;const t=c&&N.find(n=>n.tokenId===c||n.itemId===c)||N.find(n=>n.contractAddress===s.contractAddress);t&&j(n=>({...t,tradeId:n.tradeId??t.tradeId}))},[N]);const H=o.useMemo(()=>{const t=new Set,n=[];for(const d of N){if(d.id===s.id||s.itemId&&d.itemId===s.itemId||s.tokenId&&d.tokenId===s.tokenId)continue;const A=`${d.contractAddress}-${d.itemId??d.tokenId??d.id}`;t.has(A)||(t.add(A),n.push(d))}return n},[N,s.id,s.itemId,s.tokenId]),{data:Q,isLoading:k}=F({queryKey:["detail-trade",s.id,s.tradeId,s.contractAddress,s.itemId],enabled:!!s.contractAddress,queryFn:async()=>{if(s.tradeId)return s.tradeId;if(s.itemId){const t=await Ce(s.contractAddress,s.itemId);return(t==null?void 0:t.id)??null}return null}}),v=s.tradeId??Q??void 0,x=!!v,C=o.useMemo(()=>({...s,tradeId:v,id:v??s.id}),[s,v]),P=b.some(t=>t.id===C.id);o.useEffect(()=>{I(null),h(null)},[s.id]);const B=o.useRef(null);o.useEffect(()=>{!s.name||k||B.current===s.id||(B.current=s.id,L("Shop Viewed Item",{...fe(s),for_sale:x}),_e(s))},[s.id,s.name,k,x]);function Z(t){j(t);const n=t.tokenId??t.itemId;t.contractAddress&&n&&m(`/item/${t.contractAddress}/${n}`,{replace:!0,state:{item:t}}),typeof window<"u"&&window.scrollTo({top:0,behavior:"smooth"})}function J(){!x||P||f(C,"item_detail")}async function X(){var A;if(!x||!v)return;if(!l){h("Log in to check out.");return}h(null),u(!0);let t,n="authorize",d=!1;try{I(`Buying ${s.name||"item"}…`);const _=await xe(v);if(!_)throw new Error("not for sale");const R=(A=_.received)==null?void 0:A[0],re=ve(R==null?void 0:R.amount),{credit:M,maxCreditedValue:ce}=await be(l.identity,re,v);t=M.id,n="submit";const $={trade:_,buyer:l.address,signer:l.signer,credits:[M],maxCreditedValue:ce};let y;if(Ae())try{y=await Ee($),await Se(y),d=!0}catch(W){if(!(W instanceof Te))throw W;y=await U($)}else y=await U($);t=void 0,L("Shop Completed Purchase",{...je([C]),payment_type:"credits",no_crypto_step:d,transaction_hash:y??null}),m("/success",{state:{items:[C],txHash:y}})}catch(_){G(_)||Ie(_,{flow:"buy",step:n,gasless:d}),t&&Ne(l.identity,[t]).catch(()=>{}),L(G(_)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:n,error_code:ge(_),value_usd:ye(C.priceCredits)}),h(Be(_)),I(null)}finally{u(!1)}}const ee=Fe(s.rarity)?s.rarity:E.Rarity.COMMON,[se]=E.Rarity.getGradient(ee),q=Le(s.gender),te="More from this collection",ae=x?P?"In cart":k?"Checking…":"Add to cart":"Not for sale",ie=D||!!s.contractAddress&&!z;return!s.name&&!ie?e.jsxs("div",{className:"item-detail item-detail--notfound",children:[e.jsx("span",{className:"ico ico-cart item-detail__notfound-ico","aria-hidden":!0}),e.jsx("h1",{className:"item-detail__notfound-title",children:"This item isn’t available"}),e.jsx("p",{className:"muted",children:"It may have been delisted or moved. Browse the shop for something else."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>m("/assets"),children:"Browse the shop"})]}):e.jsxs("div",{className:"item-detail",children:[e.jsxs("nav",{className:"item-detail__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"item-detail__crumb-link",onClick:()=>m("/assets"),children:"Collectibles"}),e.jsx("span",{className:"item-detail__crumb-sep",children:"/"}),e.jsx("span",{className:"item-detail__crumb-current",children:s.name||"Item"})]}),e.jsxs("div",{className:"item-detail__main",children:[e.jsx("div",{className:"item-detail__preview",style:{background:`radial-gradient(circle at 50% 38%, ${se}33 0%, var(--media) 68%)`},children:e.jsx(Pe,{item:s})}),e.jsxs("div",{className:"item-detail__info",children:[e.jsxs("div",{className:"item-detail__info-head",children:[e.jsx("h1",{className:"item-detail__title",children:s.name||"Loading…"}),e.jsx("button",{className:"item-detail__fav","aria-label":"Add to favorites",children:e.jsx("span",{className:"ico ico-heart","aria-hidden":!0})})]}),s.creator?e.jsx(pe,{address:s.creator,className:"item-detail__creator",linkToProfile:!0}):null,e.jsxs("div",{className:"item-detail__chips",children:[e.jsx("span",{className:"chip chip--rarity",children:s.rarity}),e.jsx("span",{className:"chip",children:s.category==="emote"?"Emote":"Wearable"}),q?e.jsx("span",{className:"chip",children:q}):null]}),e.jsxs("div",{className:"item-detail__card",children:[e.jsxs("div",{className:"item-detail__price-block",children:[e.jsx("div",{className:"item-detail__price-label",children:"Price"}),x?e.jsxs("div",{className:"item-detail__price",children:[e.jsx(K,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:s.priceCredits})]}):e.jsx("div",{className:"item-detail__price item-detail__price--none",children:"Not for sale"}),l?e.jsxs("div",{className:"item-detail__balance muted",children:["Your balance: ",Y.symbol," ",(g==null?void 0:g.credits)??0]}):null]}),e.jsxs("div",{className:"item-detail__ctas",children:[x?e.jsx("button",{className:"btn btn--purple item-detail__cta",onClick:X,disabled:a||k,children:a?"Working…":"Buy now"}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:J,disabled:!x||P||k||a,children:[e.jsx("span",{className:"ico ico-cart-solid item-detail__addcart-ico","aria-hidden":!0}),ae]})]}),w?e.jsx("p",{className:"muted item-detail__status",children:w}):null,p?e.jsx("p",{className:"error item-detail__status",children:p}):null]})]})]}),e.jsx($e,{title:te,items:H,activeId:s.id,onSelect:Z,onViewAll:s.contractAddress?()=>m(`/collection/${s.contractAddress}`):void 0})]})}export{Oe as ItemDetail,Oe as default};
1
+ import{j as e,r as o,a as ne,d as le,b as de}from"./react-E8ng6RF2.js";import{c as V,O as oe,W as ue,y as E,i as O,j as S,F as K,G as me,k as he,e as F,t as L,P as fe,R as _e,a as pe,C as Y,h as xe,x as ve,o as be,q as je,r as G,s as Ie,w as Ne,m as ye,v as ge,b as we,S as ke,n as Ce}from"./index-D9auFFhw.js";import{h as U}from"./buy-Fa44beN-.js";import{g as Ae,a as Ee,w as Se,G as Te}from"./buy-gasless-C_Lvd8qQ.js";import"./ethers-BxoDGoYp.js";import"./index-D6de3csH.js";function Pe({item:i}){const c=V(b=>{var l;return(l=b.session)==null?void 0:l.address}),{data:r}=oe(c),m=c&&r?c:"default",f=i.category==="emote";return e.jsx(ue,{id:"shop-item-preview",contractAddress:i.contractAddress,tokenId:i.tokenId??void 0,itemId:i.tokenId?void 0:i.itemId??void 0,profile:m,type:f?void 0:E.PreviewType.AVATAR,emote:f?void 0:E.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:f?1.5:void 0,wheelStart:f?100:void 0,dev:O.chainId===80002,disableFadeEffect:!0},i.id)}function Re(i){return i==="male"?"♂":i==="female"?"♀":i==="unisex"?"⚥":""}function $e({title:i,items:c,activeId:r,onSelect:m,onViewAll:f}){const b=o.useRef(null),l=S(a=>a.add),g=S(a=>a.items.map(u=>u.id));if(c.length===0)return null;function s(a){l(a,"carousel"),me.success(`“${a.name}” added to your cart.`)}function j(a){const u=b.current;u&&u.scrollBy({left:a*Math.round(u.clientWidth*.8),behavior:"smooth"})}return e.jsxs("section",{className:"collection-carousel",children:[e.jsxs("div",{className:"collection-carousel__head",children:[e.jsx("h2",{className:"collection-carousel__title",children:i}),e.jsxs("div",{className:"collection-carousel__head-right",children:[f?e.jsx("button",{className:"collection-carousel__viewall",onClick:f,children:"View all"}):null,e.jsxs("div",{className:"collection-carousel__arrows",children:[e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>j(-1),"aria-label":"Scroll left",children:"‹"}),e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>j(1),"aria-label":"Scroll right",children:"›"})]})]})]}),e.jsx("div",{className:"collection-carousel__track",ref:b,children:c.map(a=>{const u=Re(a.gender),w=a.id===r,I=a.priceCredits>0,p=g.includes(a.id);return e.jsxs("article",{className:`collection-carousel__card${w?" is-active":""}`,onClick:()=>m(a),role:"button",tabIndex:0,"aria-current":w||void 0,onKeyDown:h=>{(h.key==="Enter"||h.key===" ")&&(h.preventDefault(),m(a))},children:[e.jsxs("div",{className:"collection-carousel__media",children:[a.thumbnail?e.jsx("img",{className:"collection-carousel__img",src:a.thumbnail,alt:a.name,loading:"lazy"}):null,I?e.jsx("button",{className:"collection-carousel__add",disabled:p,"aria-label":p?"In cart":`Add ${a.name} to cart`,title:p?"In cart":"Add to cart",onClick:h=>{h.stopPropagation(),p||s(a)},children:e.jsx("span",{className:`ico ${p?"ico-cart-solid":"ico-cart"}`,"aria-hidden":!0})}):null]}),e.jsxs("div",{className:"collection-carousel__body",children:[e.jsx("div",{className:"collection-carousel__name",title:a.name,children:a.name}),e.jsxs("div",{className:"collection-carousel__meta",children:[I?e.jsxs("span",{className:"collection-carousel__price",children:[e.jsx(K,{className:"collection-carousel__diamond"}),a.priceCredits]}):e.jsx("span",{className:"collection-carousel__price collection-carousel__na",children:"Not listed"}),e.jsxs("span",{className:"collection-carousel__chips",children:[e.jsx("span",{className:"chip chip--rarity",children:a.rarity}),u?e.jsx("span",{className:"chip chip--icon",children:u}):null]})]})]})]},a.id)})})]})}function Fe(i){return Object.values(E.Rarity).includes(i)}function Le(i){return i==="male"?"Male":i==="female"?"Female":i==="unisex"?"Unisex":null}function Be(i){const c=i,r=(c.message??"").toLowerCase();return c.code===4001||r.includes("reject")||r.includes("denied")||r.includes("cancel")?"You cancelled the request.":r.includes("insufficient")?`You don't have enough ${Y.name} — get more first.`:r.includes("no active listing")||r.includes("not for sale")?"This item is not for sale right now.":"Couldn't complete checkout — please try again."}function Oe(){const{contractAddress:i,tokenId:c}=ne(),{state:r}=le(),m=de(),f=S(t=>t.add),b=S(t=>t.items),{session:l}=V(),{data:g}=he(l),[s,j]=o.useState(()=>r!=null&&r.item?{...r.item,tradeId:r.tradeId??r.item.tradeId}:{id:`${i}-${c}`,name:"",creator:"",contractAddress:i??"",itemId:null,category:"wearable",rarity:"common",network:"MATIC",chainId:O.chainId,thumbnail:"",priceCredits:0,gender:null,tokenId:c??void 0,tradeId:r==null?void 0:r.tradeId}),[a,u]=o.useState(!1),[w,I]=o.useState(null),[p,h]=o.useState(null),{data:N=[],isFetched:z}=F({queryKey:["collection-items",s.contractAddress],enabled:!!s.contractAddress,queryFn:()=>we(s.contractAddress,{first:20}).then(t=>t.items)}),{data:T,isLoading:D}=F({queryKey:["shop-item",s.contractAddress,c],enabled:!(r!=null&&r.item)&&!!s.contractAddress&&!!c,queryFn:()=>ke(s.contractAddress,c)});o.useEffect(()=>{T&&j(t=>t.tradeId?t:{...T})},[T]),o.useEffect(()=>{if(s.name||N.length===0)return;const t=c&&N.find(n=>n.tokenId===c||n.itemId===c)||N.find(n=>n.contractAddress===s.contractAddress);t&&j(n=>({...t,tradeId:n.tradeId??t.tradeId}))},[N]);const H=o.useMemo(()=>{const t=new Set,n=[];for(const d of N){if(d.id===s.id||s.itemId&&d.itemId===s.itemId||s.tokenId&&d.tokenId===s.tokenId)continue;const A=`${d.contractAddress}-${d.itemId??d.tokenId??d.id}`;t.has(A)||(t.add(A),n.push(d))}return n},[N,s.id,s.itemId,s.tokenId]),{data:Q,isLoading:k}=F({queryKey:["detail-trade",s.id,s.tradeId,s.contractAddress,s.itemId],enabled:!!s.contractAddress,queryFn:async()=>{if(s.tradeId)return s.tradeId;if(s.itemId){const t=await Ce(s.contractAddress,s.itemId);return(t==null?void 0:t.id)??null}return null}}),v=s.tradeId??Q??void 0,x=!!v,C=o.useMemo(()=>({...s,tradeId:v,id:v??s.id}),[s,v]),P=b.some(t=>t.id===C.id);o.useEffect(()=>{I(null),h(null)},[s.id]);const B=o.useRef(null);o.useEffect(()=>{!s.name||k||B.current===s.id||(B.current=s.id,L("Shop Viewed Item",{...fe(s),for_sale:x}),_e(s))},[s.id,s.name,k,x]);function Z(t){j(t);const n=t.tokenId??t.itemId;t.contractAddress&&n&&m(`/item/${t.contractAddress}/${n}`,{replace:!0,state:{item:t}}),typeof window<"u"&&window.scrollTo({top:0,behavior:"smooth"})}function J(){!x||P||f(C,"item_detail")}async function X(){var A;if(!x||!v)return;if(!l){h("Log in to check out.");return}h(null),u(!0);let t,n="authorize",d=!1;try{I(`Buying ${s.name||"item"}…`);const _=await xe(v);if(!_)throw new Error("not for sale");const R=(A=_.received)==null?void 0:A[0],re=ve(R==null?void 0:R.amount),{credit:M,maxCreditedValue:ce}=await be(l.identity,re,v);t=M.id,n="submit";const $={trade:_,buyer:l.address,signer:l.signer,credits:[M],maxCreditedValue:ce};let y;if(Ae())try{y=await Ee($),await Se(y),d=!0}catch(W){if(!(W instanceof Te))throw W;y=await U($)}else y=await U($);t=void 0,L("Shop Completed Purchase",{...je([C]),payment_type:"credits",no_crypto_step:d,transaction_hash:y??null}),m("/success",{state:{items:[C],txHash:y}})}catch(_){G(_)||Ie(_,{flow:"buy",step:n,gasless:d}),t&&Ne(l.identity,[t]).catch(()=>{}),L(G(_)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:n,error_code:ge(_),value_usd:ye(C.priceCredits)}),h(Be(_)),I(null)}finally{u(!1)}}const ee=Fe(s.rarity)?s.rarity:E.Rarity.COMMON,[se]=E.Rarity.getGradient(ee),q=Le(s.gender),te="More from this collection",ae=x?P?"In cart":k?"Checking…":"Add to cart":"Not for sale",ie=D||!!s.contractAddress&&!z;return!s.name&&!ie?e.jsxs("div",{className:"item-detail item-detail--notfound",children:[e.jsx("span",{className:"ico ico-cart item-detail__notfound-ico","aria-hidden":!0}),e.jsx("h1",{className:"item-detail__notfound-title",children:"This item isn’t available"}),e.jsx("p",{className:"muted",children:"It may have been delisted or moved. Browse the shop for something else."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>m("/assets"),children:"Browse the shop"})]}):e.jsxs("div",{className:"item-detail",children:[e.jsxs("nav",{className:"item-detail__crumbs","aria-label":"Breadcrumb",children:[e.jsx("button",{className:"item-detail__crumb-link",onClick:()=>m("/assets"),children:"Collectibles"}),e.jsx("span",{className:"item-detail__crumb-sep",children:"/"}),e.jsx("span",{className:"item-detail__crumb-current",children:s.name||"Item"})]}),e.jsxs("div",{className:"item-detail__main",children:[e.jsx("div",{className:"item-detail__preview",style:{background:`radial-gradient(circle at 50% 38%, ${se}33 0%, var(--media) 68%)`},children:e.jsx(Pe,{item:s})}),e.jsxs("div",{className:"item-detail__info",children:[e.jsxs("div",{className:"item-detail__info-head",children:[e.jsx("h1",{className:"item-detail__title",children:s.name||"Loading…"}),e.jsx("button",{className:"item-detail__fav","aria-label":"Add to favorites",children:e.jsx("span",{className:"ico ico-heart","aria-hidden":!0})})]}),s.creator?e.jsx(pe,{address:s.creator,className:"item-detail__creator",linkToProfile:!0}):null,e.jsxs("div",{className:"item-detail__chips",children:[e.jsx("span",{className:"chip chip--rarity",children:s.rarity}),e.jsx("span",{className:"chip",children:s.category==="emote"?"Emote":"Wearable"}),q?e.jsx("span",{className:"chip",children:q}):null]}),e.jsxs("div",{className:"item-detail__card",children:[e.jsxs("div",{className:"item-detail__price-block",children:[e.jsx("div",{className:"item-detail__price-label",children:"Price"}),x?e.jsxs("div",{className:"item-detail__price",children:[e.jsx(K,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:s.priceCredits})]}):e.jsx("div",{className:"item-detail__price item-detail__price--none",children:"Not for sale"}),l?e.jsxs("div",{className:"item-detail__balance muted",children:["Your balance: ",Y.symbol," ",(g==null?void 0:g.credits)??0]}):null]}),e.jsxs("div",{className:"item-detail__ctas",children:[x?e.jsx("button",{className:"btn btn--purple item-detail__cta",onClick:X,disabled:a||k,children:a?"Working…":"Buy now"}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:J,disabled:!x||P||k||a,children:[e.jsx("span",{className:"ico ico-cart-solid item-detail__addcart-ico","aria-hidden":!0}),ae]})]}),w?e.jsx("p",{className:"muted item-detail__status",children:w}):null,p?e.jsx("p",{className:"error item-detail__status",children:p}):null]})]})]}),e.jsx($e,{title:te,items:H,activeId:s.id,onSelect:Z,onViewAll:s.contractAddress?()=>m(`/collection/${s.contractAddress}`):void 0})]})}export{Oe as ItemDetail,Oe as default};
@@ -1 +1 @@
1
- import{b as te,r as c,j as e,u as ie}from"./react-E8ng6RF2.js";import{e as ne,i as B,c as le,k as ce,l as V,h as oe,o as de,w as S,t as T,v as G,r as H,F as Q,I as K,C as $,A as ue,J as me}from"./index-DDLsPu5_.js";import{r as he,a as U,m as pe}from"./mana-rate-D91Nq-wO.js";import{S as O}from"./SkeletonCards-yV2mi4oc.js";import{L as fe}from"./LoadMore-DB6TwvRe.js";import{h as Y}from"./buy-qVYsiH8c.js";import{g as _e,a as ye,w as be,G as ke}from"./buy-gasless-EwLKJESl.js";import{u as xe}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";import"./index-0QSHJ5kM.js";function ve(){return ne({queryKey:["mana-rate",B.chainId],queryFn:()=>he(B.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function z(r){const u=r,o=(u.message??"").toLowerCase();return u.code===4001||o.includes("reject")||o.includes("denied")||o.includes("cancel")?"You cancelled the request.":o.includes("insufficient")?`Not enough ${$.name} — get more first.`:o.includes("not found")||o.includes("no active listing")||o.includes("404")?"This item was just sold or removed. Refreshing the market…":"Couldn't complete checkout — please try again."}function ge(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function je({listing:r,rate:u,onClose:o,onSold:k}){const{session:i}=le(),{data:n}=ce(i),x=V(),m=te(),[N,y]=c.useState("confirm"),[w,h]=c.useState("Locking today’s price…"),[_,v]=c.useState(null),[s,R]=c.useState(null),p=c.useRef(null),E=Math.ceil(U(r.manaWei,u)/10);c.useEffect(()=>{let b=!1;if(!i){y("error"),v("Log in to check out.");return}return(async()=>{try{const t=await oe(r.tradeId);if(!t)throw new Error("not found");const l=U(r.manaWei,u);if(!Number.isFinite(l)||l<=0)throw new Error("price unavailable");const{credit:d,maxCreditedValue:F,usdCents:P}=await de(i.identity,l,r.tradeId);if(b){S(i.identity,[d.id]).catch(()=>{});return}p.current=d.id,R({trade:t,credit:d,maxCreditedValue:F,usdCents:P,credits:Math.ceil(P/10)}),h("")}catch(t){if(b)return;console.error("[market] authorize failed",t),T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:G(t),value_usd:Math.round(U(r.manaWei,u))/100}),y("error"),v(z(t))}})(),()=>{b=!0,p.current&&i&&(S(i.identity,[p.current]).catch(()=>{}),p.current=null)}},[]);const g=!!s&&((n==null?void 0:n.credits)??0)<s.credits;async function L(){if(!i||!s)return;if(g){S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,m("/credits");return}y("working"),v(null);let b=!1;try{h("Confirming your purchase…");const t={trade:s.trade,buyer:i.address,signer:i.signer,credits:[s.credit],maxCreditedValue:s.maxCreditedValue};let l;if(_e())try{l=await ye(t),await be(l),b=!0}catch(d){if(!(d instanceof ke))throw d;l=await Y(t)}else l=await Y(t);p.current=null,T("Shop Completed Purchase",{items:[{item_id:r.itemId??null,contract_address:r.contractAddress,token_id:null,price_usd:s.usdCents/100}],value_credits:s.credits,value_usd:s.usdCents/100,purchase_type:"item",is_primary:!0,payment_type:"credits",no_crypto_step:b,transaction_hash:l??null}),x.invalidateQueries({queryKey:["usd-balance"]}),m("/success",{state:{items:[ge(r)],txHash:l}})}catch(t){console.error("[market] buy now failed",t),S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:G(t),value_usd:s.usdCents/100}),x.invalidateQueries({queryKey:["usd-balance"]});const l=z(t);v(l),y("error"),/sold or removed/i.test(l)&&k()}}function C(){i&&s&&S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,o()}const j=N==="working";return e.jsxs("div",{className:"mkt-modal",role:"dialog","aria-modal":"true","aria-label":`Buy ${r.name}`,children:[e.jsx("div",{className:"mkt-modal__scrim",onClick:j?void 0:C,"aria-hidden":!0}),e.jsxs("div",{className:"mkt-modal__card",children:[e.jsxs("div",{className:"mkt-modal__head",children:[e.jsx("div",{className:"mkt-modal__thumb",children:r.thumbnail?e.jsx("img",{src:r.thumbnail,alt:""}):null}),e.jsxs("div",{children:[e.jsx("div",{className:"mkt-modal__name",title:r.name,children:r.name||"Item"}),e.jsx("span",{className:"chip chip--rarity",children:r.rarity})]})]}),e.jsx("div",{className:"mkt-modal__price",children:s?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mkt-modal__price-label",children:"Final price"}),e.jsxs("div",{className:"mkt-modal__price-value",children:[e.jsx(Q,{className:"mkt-modal__diamond"}),K(s.credits)]}),e.jsxs("div",{className:"mkt-modal__price-sub muted",children:["Locked for this purchase · $",(s.usdCents/100).toFixed(2)]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mkt-modal__price-label",children:"Today’s price"}),e.jsxs("div",{className:"mkt-modal__price-value mkt-modal__price-value--approx",children:[e.jsx("span",{className:"mkt-modal__approx","aria-hidden":!0,children:"≈"}),e.jsx(Q,{className:"mkt-modal__diamond"}),K(E)]}),e.jsx("div",{className:"mkt-modal__price-sub muted",children:w||"Locking today’s price…"})]})}),i?e.jsxs("div",{className:"mkt-modal__balance muted",children:["Your balance: ",$.symbol," ",(n==null?void 0:n.credits)??0]}):null,g?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",$.name," to buy this."]}):null,w&&N==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:w}):null,_?e.jsx("p",{className:"error mkt-modal__note",children:_}):null,e.jsxs("div",{className:"mkt-modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:C,disabled:j,children:"Cancel"}),e.jsx("button",{className:"btn btn--purple",onClick:L,disabled:j||!s,children:j?"Working…":g?`Get ${$.name}`:"Confirm purchase"})]})]})]})}const Ce=48,W=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],Ne={Head:["head","hat","hair","facial_hair","eyes","eyebrows","mouth","mask","helmet","tiara","top_head"],"Upper Body":["upper_body"],Handwear:["hands_wear"],"Lower Body":["lower_body"],Feet:["feet"],Accessories:["earring","eyewear"],Skins:["skin"]},we=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],A=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function Ie(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function Te(){const[r]=ie(),u=(r.get("q")??"").trim().toLowerCase(),o=V(),[k,i]=c.useState("wearable"),[n,x]=c.useState(null),[m,N]=c.useState([]),[y,w]=c.useState("newest"),[h,_]=c.useState(null),[v,s]=c.useState(null),R=n?Ne[n]:void 0,p=(A.find(a=>a.key===y)??A[0]).server,E={category:k,rarities:m.length?m:void 0,wearableCategories:R,search:u||void 0,sortBy:p},{items:g,total:L,isLoading:C,error:j,hasNextPage:b,isFetchingNextPage:t,fetchNextPage:l}=xe(["legacy-listings",E],a=>me({...E,first:Ce,skip:a})),{data:d,isError:F}=ve(),P=a=>d?pe(a.manaWei,d):null;function Z(a){i(a),x(null)}function J(a){N(f=>f.includes(a)?f.filter(q=>q!==a):[...f,a])}function D(){i("wearable"),x(null),N([]),_(null)}function M(a){_(f=>f===a?null:a)}function X(a){const f=g.find(q=>q.tradeId===a.tradeId);f&&s(f)}function ee(){o.invalidateQueries({queryKey:["legacy-listings"]})}const ae=A.find(a=>a.key===y)??A[0],I=W.find(a=>a.key===k)??W[0],re=n?`${I.label} · ${n}`:I.label,se=k!=="wearable"||!!n||m.length>0;return e.jsxs("div",{className:"browse",children:[e.jsxs("div",{className:"market-banner",children:[e.jsx("span",{className:"market-banner__ico","aria-hidden":!0,children:"✨"}),e.jsx("span",{children:"Prices here follow the live market and may shift slightly at checkout."})]}),F?e.jsx("p",{className:"market-banner market-banner--warn",children:"The market price is temporarily unavailable — buying is paused for a moment. Please try again shortly."}):null,h?e.jsx("div",{className:"filterbar__scrim",onClick:()=>_(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="section"?" is-open":""}${n||k!=="wearable"?" is-active":""}`,onClick:()=>M("section"),children:[re," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:W.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${k===a.key?" is-active":""}`,onClick:()=>Z(a.key),children:a.label})},a.key))}),I.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${n?"":" is-active"}`,onClick:()=>{x(null),_(null)},children:["All ",I.label]})}),I.sub.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${n===a?" is-active":""}`,onClick:()=>{x(f=>f===a?null:a),_(null)},children:a})},a))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="rarity"?" is-open":""}${m.length?" is-active":""}`,onClick:()=>M("rarity"),children:["Rarity ",m.length?e.jsx("span",{className:"filterbar__badge",children:m.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:we.map(a=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:m.includes(a),onChange:()=>J(a)}),e.jsx("span",{children:a})]},a))}):null]}),se?e.jsx("button",{className:"filterbar__clear",onClick:D,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[C?"…":`${L.toLocaleString()} item${L===1?"":"s"}`,u?` for “${u}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${h==="sort"?" is-open":""}`,onClick:()=>M("sort"),children:["Sort by: ",ae.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:A.map(a=>e.jsx("button",{className:`filter-pop__sort${a.key===y?" is-active":""}`,onClick:()=>{w(a.key),_(null)},children:a.label},a.key))}):null]})]})]}),j?e.jsx("p",{className:"error",children:j.message}):null,e.jsx("div",{className:"grid",children:C?e.jsx(O,{count:15}):e.jsxs(e.Fragment,{children:[g.map(a=>e.jsx(ue,{item:Ie(a),mode:"market",marketPriceCredits:P(a),onBuyNow:X},a.tradeId)),t?e.jsx(O,{count:6}):null]})}),e.jsx(fe,{hasNextPage:b,isFetching:t,onLoadMore:()=>l()}),!C&&g.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,v&&d?e.jsx(je,{listing:v,rate:d,onClose:()=>s(null),onSold:()=>{s(null),ee()}}):null]})}export{Te as Market,Te as default};
1
+ import{b as te,r as c,j as e,u as ie}from"./react-E8ng6RF2.js";import{e as ne,i as B,c as le,k as ce,l as V,h as oe,o as de,w as S,t as T,v as G,r as H,F as Q,I as K,C as $,A as ue,J as me}from"./index-D9auFFhw.js";import{r as he,a as U,m as pe}from"./mana-rate-ht8qDfqA.js";import{S as O}from"./SkeletonCards-yV2mi4oc.js";import{L as fe}from"./LoadMore-DB6TwvRe.js";import{h as Y}from"./buy-Fa44beN-.js";import{g as _e,a as ye,w as be,G as ke}from"./buy-gasless-C_Lvd8qQ.js";import{u as xe}from"./useInfiniteGrid-DlBWvPPH.js";import"./ethers-BxoDGoYp.js";import"./index-D6de3csH.js";function ve(){return ne({queryKey:["mana-rate",B.chainId],queryFn:()=>he(B.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function z(r){const u=r,o=(u.message??"").toLowerCase();return u.code===4001||o.includes("reject")||o.includes("denied")||o.includes("cancel")?"You cancelled the request.":o.includes("insufficient")?`Not enough ${$.name} — get more first.`:o.includes("not found")||o.includes("no active listing")||o.includes("404")?"This item was just sold or removed. Refreshing the market…":"Couldn't complete checkout — please try again."}function ge(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function je({listing:r,rate:u,onClose:o,onSold:k}){const{session:i}=le(),{data:n}=ce(i),x=V(),m=te(),[N,y]=c.useState("confirm"),[w,h]=c.useState("Locking today’s price…"),[_,v]=c.useState(null),[s,R]=c.useState(null),p=c.useRef(null),E=Math.ceil(U(r.manaWei,u)/10);c.useEffect(()=>{let b=!1;if(!i){y("error"),v("Log in to check out.");return}return(async()=>{try{const t=await oe(r.tradeId);if(!t)throw new Error("not found");const l=U(r.manaWei,u);if(!Number.isFinite(l)||l<=0)throw new Error("price unavailable");const{credit:d,maxCreditedValue:F,usdCents:P}=await de(i.identity,l,r.tradeId);if(b){S(i.identity,[d.id]).catch(()=>{});return}p.current=d.id,R({trade:t,credit:d,maxCreditedValue:F,usdCents:P,credits:Math.ceil(P/10)}),h("")}catch(t){if(b)return;console.error("[market] authorize failed",t),T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:G(t),value_usd:Math.round(U(r.manaWei,u))/100}),y("error"),v(z(t))}})(),()=>{b=!0,p.current&&i&&(S(i.identity,[p.current]).catch(()=>{}),p.current=null)}},[]);const g=!!s&&((n==null?void 0:n.credits)??0)<s.credits;async function L(){if(!i||!s)return;if(g){S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,m("/credits");return}y("working"),v(null);let b=!1;try{h("Confirming your purchase…");const t={trade:s.trade,buyer:i.address,signer:i.signer,credits:[s.credit],maxCreditedValue:s.maxCreditedValue};let l;if(_e())try{l=await ye(t),await be(l),b=!0}catch(d){if(!(d instanceof ke))throw d;l=await Y(t)}else l=await Y(t);p.current=null,T("Shop Completed Purchase",{items:[{item_id:r.itemId??null,contract_address:r.contractAddress,token_id:null,price_usd:s.usdCents/100}],value_credits:s.credits,value_usd:s.usdCents/100,purchase_type:"item",is_primary:!0,payment_type:"credits",no_crypto_step:b,transaction_hash:l??null}),x.invalidateQueries({queryKey:["usd-balance"]}),m("/success",{state:{items:[ge(r)],txHash:l}})}catch(t){console.error("[market] buy now failed",t),S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,T(H(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:G(t),value_usd:s.usdCents/100}),x.invalidateQueries({queryKey:["usd-balance"]});const l=z(t);v(l),y("error"),/sold or removed/i.test(l)&&k()}}function C(){i&&s&&S(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,o()}const j=N==="working";return e.jsxs("div",{className:"mkt-modal",role:"dialog","aria-modal":"true","aria-label":`Buy ${r.name}`,children:[e.jsx("div",{className:"mkt-modal__scrim",onClick:j?void 0:C,"aria-hidden":!0}),e.jsxs("div",{className:"mkt-modal__card",children:[e.jsxs("div",{className:"mkt-modal__head",children:[e.jsx("div",{className:"mkt-modal__thumb",children:r.thumbnail?e.jsx("img",{src:r.thumbnail,alt:""}):null}),e.jsxs("div",{children:[e.jsx("div",{className:"mkt-modal__name",title:r.name,children:r.name||"Item"}),e.jsx("span",{className:"chip chip--rarity",children:r.rarity})]})]}),e.jsx("div",{className:"mkt-modal__price",children:s?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mkt-modal__price-label",children:"Final price"}),e.jsxs("div",{className:"mkt-modal__price-value",children:[e.jsx(Q,{className:"mkt-modal__diamond"}),K(s.credits)]}),e.jsxs("div",{className:"mkt-modal__price-sub muted",children:["Locked for this purchase · $",(s.usdCents/100).toFixed(2)]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mkt-modal__price-label",children:"Today’s price"}),e.jsxs("div",{className:"mkt-modal__price-value mkt-modal__price-value--approx",children:[e.jsx("span",{className:"mkt-modal__approx","aria-hidden":!0,children:"≈"}),e.jsx(Q,{className:"mkt-modal__diamond"}),K(E)]}),e.jsx("div",{className:"mkt-modal__price-sub muted",children:w||"Locking today’s price…"})]})}),i?e.jsxs("div",{className:"mkt-modal__balance muted",children:["Your balance: ",$.symbol," ",(n==null?void 0:n.credits)??0]}):null,g?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",$.name," to buy this."]}):null,w&&N==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:w}):null,_?e.jsx("p",{className:"error mkt-modal__note",children:_}):null,e.jsxs("div",{className:"mkt-modal__actions",children:[e.jsx("button",{className:"btn btn--ghost",onClick:C,disabled:j,children:"Cancel"}),e.jsx("button",{className:"btn btn--purple",onClick:L,disabled:j||!s,children:j?"Working…":g?`Get ${$.name}`:"Confirm purchase"})]})]})]})}const Ce=48,W=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],Ne={Head:["head","hat","hair","facial_hair","eyes","eyebrows","mouth","mask","helmet","tiara","top_head"],"Upper Body":["upper_body"],Handwear:["hands_wear"],"Lower Body":["lower_body"],Feet:["feet"],Accessories:["earring","eyewear"],Skins:["skin"]},we=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],A=[{key:"newest",label:"Newest",server:"newest"},{key:"price-asc",label:"Price: Low to High",server:"cheapest"},{key:"price-desc",label:"Price: High to Low",server:"most_expensive"},{key:"name",label:"Name (A–Z)",server:"name"}];function Ie(r){return{id:r.tradeId,tradeId:r.tradeId,name:r.name,creator:r.creator,contractAddress:r.contractAddress,itemId:r.itemId,category:r.category,wearableCategory:r.wearableCategory??void 0,rarity:r.rarity,network:r.network,chainId:r.chainId,thumbnail:r.thumbnail,priceCredits:0,gender:null}}function Te(){const[r]=ie(),u=(r.get("q")??"").trim().toLowerCase(),o=V(),[k,i]=c.useState("wearable"),[n,x]=c.useState(null),[m,N]=c.useState([]),[y,w]=c.useState("newest"),[h,_]=c.useState(null),[v,s]=c.useState(null),R=n?Ne[n]:void 0,p=(A.find(a=>a.key===y)??A[0]).server,E={category:k,rarities:m.length?m:void 0,wearableCategories:R,search:u||void 0,sortBy:p},{items:g,total:L,isLoading:C,error:j,hasNextPage:b,isFetchingNextPage:t,fetchNextPage:l}=xe(["legacy-listings",E],a=>me({...E,first:Ce,skip:a})),{data:d,isError:F}=ve(),P=a=>d?pe(a.manaWei,d):null;function Z(a){i(a),x(null)}function J(a){N(f=>f.includes(a)?f.filter(q=>q!==a):[...f,a])}function D(){i("wearable"),x(null),N([]),_(null)}function M(a){_(f=>f===a?null:a)}function X(a){const f=g.find(q=>q.tradeId===a.tradeId);f&&s(f)}function ee(){o.invalidateQueries({queryKey:["legacy-listings"]})}const ae=A.find(a=>a.key===y)??A[0],I=W.find(a=>a.key===k)??W[0],re=n?`${I.label} · ${n}`:I.label,se=k!=="wearable"||!!n||m.length>0;return e.jsxs("div",{className:"browse",children:[e.jsxs("div",{className:"market-banner",children:[e.jsx("span",{className:"market-banner__ico","aria-hidden":!0,children:"✨"}),e.jsx("span",{children:"Prices here follow the live market and may shift slightly at checkout."})]}),F?e.jsx("p",{className:"market-banner market-banner--warn",children:"The market price is temporarily unavailable — buying is paused for a moment. Please try again shortly."}):null,h?e.jsx("div",{className:"filterbar__scrim",onClick:()=>_(null),"aria-hidden":!0}):null,e.jsxs("div",{className:"filterbar",children:[e.jsxs("div",{className:"filterbar__filters",children:[e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="section"?" is-open":""}${n||k!=="wearable"?" is-active":""}`,onClick:()=>M("section"),children:[re," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="section"?e.jsxs("div",{className:"filter-pop filter-pop--section",children:[e.jsx("ul",{className:"filter-pop__cats",children:W.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__cat${k===a.key?" is-active":""}`,onClick:()=>Z(a.key),children:a.label})},a.key))}),I.sub.length?e.jsxs("ul",{className:"filter-pop__subs",children:[e.jsx("li",{children:e.jsxs("button",{className:`filter-pop__sub${n?"":" is-active"}`,onClick:()=>{x(null),_(null)},children:["All ",I.label]})}),I.sub.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${n===a?" is-active":""}`,onClick:()=>{x(f=>f===a?null:a),_(null)},children:a})},a))]}):null]}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${h==="rarity"?" is-open":""}${m.length?" is-active":""}`,onClick:()=>M("rarity"),children:["Rarity ",m.length?e.jsx("span",{className:"filterbar__badge",children:m.length}):null," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:we.map(a=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:m.includes(a),onChange:()=>J(a)}),e.jsx("span",{children:a})]},a))}):null]}),se?e.jsx("button",{className:"filterbar__clear",onClick:D,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[C?"…":`${L.toLocaleString()} item${L===1?"":"s"}`,u?` for “${u}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${h==="sort"?" is-open":""}`,onClick:()=>M("sort"),children:["Sort by: ",ae.label," ",e.jsx("span",{className:"filterbar__chev","aria-hidden":!0,children:"▾"})]}),h==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:A.map(a=>e.jsx("button",{className:`filter-pop__sort${a.key===y?" is-active":""}`,onClick:()=>{w(a.key),_(null)},children:a.label},a.key))}):null]})]})]}),j?e.jsx("p",{className:"error",children:j.message}):null,e.jsx("div",{className:"grid",children:C?e.jsx(O,{count:15}):e.jsxs(e.Fragment,{children:[g.map(a=>e.jsx(ue,{item:Ie(a),mode:"market",marketPriceCredits:P(a),onBuyNow:X},a.tradeId)),t?e.jsx(O,{count:6}):null]})}),e.jsx(fe,{hasNextPage:b,isFetching:t,onLoadMore:()=>l()}),!C&&g.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,v&&d?e.jsx(je,{listing:v,rate:d,onClose:()=>s(null),onSold:()=>{s(null),ee()}}):null]})}export{Te as Market,Te as default};
@@ -1 +1 @@
1
- import{b as Y,r as m,j as s,L as re}from"./react-E8ng6RF2.js";import{y as z,i as W,T as le,l as G,C as j,p as ee,t as P,G as B,s as V,v as se,c as ce,e as U,U as oe,h as de,V as me}from"./index-DDLsPu5_.js";import{f as ue}from"./import-DjExR-_c.js";import{a as he,b as pe,i as be,e as ge,c as ye,d as fe}from"./buy-qVYsiH8c.js";import{s as xe}from"./wallet-kind-By432Wm8.js";import{L as _e}from"./LoadMore-DB6TwvRe.js";import{u as je}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";import"./mana-rate-D91Nq-wO.js";import"./index-0QSHJ5kM.js";const T=()=>`${W.builderServerUrl}/v1`;function ne(e){return Array.isArray(e)?e:"results"in e&&Array.isArray(e.results)?e.results:"data"in e&&Array.isArray(e.data)?e.data:[]}async function te(e,i){const t=await le(e,{method:"GET",identity:i,metadata:{}});if(!t.ok)throw new Error(`builder-server ${t.status}: ${await t.text()}`);const o=await t.json();return o.data??o}function Ne(e,i){const t=i-e;return t>0?t:0}function ve(e){var i,t,o,l,c;return((t=(i=e.data)==null?void 0:i.wearable)==null?void 0:t.category)??((l=(o=e.data)==null?void 0:o.emote)==null?void 0:l.category)??((c=e.data)==null?void 0:c.category)??e.type??"wearable"}function J(e){return`${T()}/storage/contents/${e}`}function $(e,i){if(!e)return"";if(/^https?:\/\//.test(e))return e;const t=i==null?void 0:i[e];return t?J(t):/^(ba|Qm)/.test(e)?J(e):""}async function Ie(e,i){try{const t=await fetch(`${T()}/items/${e}/${i}/contents`);if(!t.ok)return{};const o=await t.json();return o.data??o}catch{return{}}}async function ke(e,i,t){const o=$(e.thumbnail,e.contents)||$("thumbnail.png",e.contents);if(o)return o;if(i&&t){const l=await Ie(i,t);return $(e.thumbnail,l)||$("thumbnail.png",l)||$("image.png",l)}return""}async function we(e,i){const t=`${T()}/${e.toLowerCase()}/collections?is_published=true`,o=await te(t,i);return ne(o).filter(l=>l.is_published&&!!l.contract_address).map(l=>({id:l.id,name:l.name,contractAddress:l.contract_address.toLowerCase(),isPublished:l.is_published,isApproved:l.is_approved,minters:(l.minters??[]).map(c=>c.toLowerCase())}))}async function Se(e,i){const t=`${T()}/collections/${e.id}/items`,o=await te(t,i);return(await Promise.all(ne(o).map(async c=>{const k=c.rarity??"common",N=Number(c.total_supply??0)||0;let u=0;try{u=z.Rarity.getMaxSupply(k)}catch{u=0}const v=(c.contract_address??e.contractAddress).toLowerCase(),p=c.blockchain_item_id??"";return{id:c.id,collectionId:e.id,collectionName:e.name,contractAddress:v,blockchainItemId:p,name:c.name,category:ve(c),rarity:k,thumbnail:await ke(c,v,p),type:c.type??"wearable",isPublished:c.is_published??e.isPublished,isApproved:c.is_approved??e.isApproved,totalSupply:N,maxSupply:u,remainingSupply:Ne(N,u),minters:e.minters}}))).filter(Ce)}function Ce(e){return e.isPublished&&e.isApproved&&e.blockchainItemId!==""&&e.blockchainItemId!=null&&e.remainingSupply>0}async function Ae(e,i){const t=await we(e,i);return(await Promise.all(t.map(async l=>{try{return await Se(l,i)}catch{return[]}}))).flat()}const Pe=1e3*60*60*24*182;function $e(e){const i=e,t=(i.message??"").toLowerCase();return i.code===4001||t.includes("reject")||t.includes("denied")||t.includes("cancel")?"You cancelled the request.":"Couldn't list your item — please try again."}function Le({asset:e,session:i,onClose:t}){const o=G(),l=Y(),[c,k]=m.useState("10"),[N,u]=m.useState(null),[v,p]=m.useState(null),[b,w]=m.useState(!1),[x,_]=m.useState(null);async function C(){p(null);const d=Number(c);if(!Number.isInteger(d)||d<=0){p("Enter a whole number of credits");return}w(!0);try{u("Getting your item ready…"),await he({signer:i.signer,contractAddress:e.contractAddress,chainId:e.chainId}),u("Listing your item…");const I=await pe({signer:i.signer,nft:{contractAddress:e.contractAddress,tokenId:e.tokenId,network:e.network,chainId:e.chainId},usdPrice:d/10,expiresAtMs:Date.now()+Pe});u("Publishing…"),await ee(I,i.identity),u(null),_(d),P("Shop Listed Item",{item_id:e.itemId??e.tokenId??null,contract_address:e.contractAddress,price_credits:d,price_usd:d/10,listing_type:"secondary",is_primary:!1}),B.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["my-assets",i.address]})}catch(I){V(I,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:se(I)}),p($e(I)),u(null)}finally{w(!1)}}function f(){t(),l(`/item/${e.contractAddress}/${e.tokenId}`)}return x!==null?s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:d=>d.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),s.jsx("h2",{className:"modal__title",children:"It’s on sale! 🎉"}),e.image?s.jsx("img",{className:"modal__img",src:e.image,alt:e.name}):null,s.jsx("p",{className:"modal-success__name",children:e.name}),s.jsxs("p",{className:"muted small",children:["Listed for ",s.jsxs("strong",{children:[j.symbol," ",x]})]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:f,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:d=>d.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsxs("h2",{className:"modal__title",children:["List “",e.name,"”"]}),e.image?s.jsx("img",{className:"modal__img",src:e.image,alt:e.name}):null,s.jsxs("label",{className:"field",children:[s.jsxs("span",{children:["Price (",j.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:d=>k(d.target.value),disabled:b})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",j.name," (1 ",j.nameSingular," = $0.10)."]}),N?s.jsx("p",{className:"muted",children:N}):null,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,disabled:b,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:C,disabled:b,children:b?"Working…":"List for sale"})]})]})})}const Ee=1e3*60*60*24*182;function Me(e){const i=e,t=(i.message??"").toLowerCase();return i.code===4001||t.includes("reject")||t.includes("denied")||t.includes("cancel")?"You cancelled the request.":"Couldn't publish your item — please try again."}function qe({item:e,session:i,onClose:t}){const o=G(),l=Y(),[c,k]=m.useState("10"),[N,u]=m.useState(null),[v,p]=m.useState(null),[b,w]=m.useState(!1),[x,_]=m.useState(null),[C,f]=m.useState(null),d=W.chainId,I=xe(i.providerType);m.useEffect(()=>{let h=!1;return(async()=>{try{const g=await be({contractAddress:e.contractAddress,chainId:d});h||_(g)}catch{h||_(!1)}})(),()=>{h=!0}},[e.contractAddress,d]);async function L(){p(null);const h=Number(c);if(!Number.isInteger(h)||h<=0){p("Enter a whole number of credits");return}w(!0);try{x||(u("Enabling sales for this collection…"),await ge({signer:i.signer,contractAddress:e.contractAddress,chainId:d}),_(!0)),u("Publishing your item…");const g=await ye({signer:i.signer,item:{contractAddress:e.contractAddress,itemId:e.blockchainItemId,network:z.Network.MATIC,chainId:d},usdPrice:h/10,uses:e.remainingSupply,expiresAtMs:Date.now()+Ee});u("Finishing up…"),await ee(g,i.identity),u(null),f(h),P("Shop Listed Item",{item_id:e.blockchainItemId,contract_address:e.contractAddress,price_credits:h,price_usd:h/10,listing_type:"primary",is_primary:!0}),B.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["publishable-items"]}),o.invalidateQueries({queryKey:["collection-sale-state"]})}catch(g){V(g,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:se(g)}),p(Me(g)),u(null)}finally{w(!1)}}function D(){t(),l(`/item/${e.contractAddress}/${e.blockchainItemId}`)}const E=b?"Working…":x===!1?"Enable & publish":"Publish for sale";return C!==null?s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:h=>h.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),s.jsx("h2",{className:"modal__title",children:"It’s on sale! 🎉"}),e.thumbnail?s.jsx("img",{className:"modal__img",src:e.thumbnail,alt:e.name}):null,s.jsx("p",{className:"modal-success__name",children:e.name}),s.jsxs("p",{className:"muted small",children:["Listed for ",s.jsxs("strong",{children:[j.symbol," ",C]})," · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:D,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:h=>h.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsxs("h2",{className:"modal__title",children:["Publish “",e.name,"”"]}),e.thumbnail?s.jsx("img",{className:"modal__img",src:e.thumbnail,alt:e.name}):null,s.jsxs("p",{className:"muted small",children:["From your collection “",e.collectionName,"” · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("label",{className:"field",children:[s.jsxs("span",{children:["Price (",j.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:h=>k(h.target.value),disabled:b})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",j.name," (1 ",j.nameSingular," = $0.10)."]}),x===!1&&!b?I?s.jsxs("p",{className:"muted small primary-note",children:["First time selling from “",e.collectionName,"”? It needs a one-time approval, then you’ll confirm the listing — two quick confirmations. After this, listing more items from this collection is a single step."]}):s.jsxs("p",{className:"muted small primary-note",children:["First time selling from “",e.collectionName,"”? Setting it up takes a moment — after that, listing more items from this collection is instant."]}):x===!0&&!b?I?s.jsx("p",{className:"muted small primary-note",children:"This collection is ready — publishing is a single confirmation."}):s.jsx("p",{className:"muted small primary-note",children:"This collection is ready — publishing is instant."}):null,N?s.jsx("p",{className:"muted",children:N}):null,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,disabled:b,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:L,disabled:b||x===null,children:x===null?"Checking…":E})]})]})})}const Fe=48;function Z(e){return{id:e.id,name:e.name,creator:"",contractAddress:e.contractAddress,itemId:e.itemId,category:e.category,rarity:e.rarity??"common",network:e.network,chainId:e.chainId,thumbnail:e.image,priceCredits:e.listingPrice??0,gender:null,tokenId:e.tokenId}}function F(e){return{id:`${e.contractAddress}-${e.blockchainItemId}`,name:e.name,creator:"",contractAddress:e.contractAddress,itemId:e.blockchainItemId,category:e.category,rarity:e.rarity,network:"MATIC",chainId:W.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null}}function Be(){const{session:e,error:i,signIn:t,restore:o}=ce(),l=Y(),c=G(),[k,N]=m.useState(null),[u,v]=m.useState(null),[p,b]=m.useState(null),[w,x]=m.useState(null);function _(n){const a=n.tokenId??n.itemId??"";!n.contractAddress||!a||l(`/item/${n.contractAddress}/${a}`,{state:{item:n}})}async function C(n,a,r){if(e){x(null),b(r);try{const y=await de(n);await fe({trade:y,signer:e.signer}),B.success(`“${a}” is no longer for sale.`),await c.invalidateQueries({queryKey:["my-assets",e.address]}),await c.invalidateQueries({queryKey:["collection-sale-state"]})}catch(y){const M=y,q=(M.message??"").toLowerCase(),X=M.code===4001||q.includes("reject")||q.includes("denied");X||V(y,{flow:"remove-listing",tradeId:n}),x(X?"You cancelled the request.":"Couldn't remove the listing — please try again.")}finally{b(null)}}}m.useEffect(()=>{o()},[o]);const f=e==null?void 0:e.address,{items:d,isLoading:I,error:L,hasNextPage:D,isFetchingNextPage:E,fetchNextPage:h}=je(["my-assets",f],n=>oe(f,{first:Fe,skip:n}).then(a=>({items:a.assets,total:a.total})),{enabled:!!f}),{data:g}=U({queryKey:["importable",f],queryFn:()=>ue(f),enabled:!!f}),K=((g==null?void 0:g.creations.length)??0)+((g==null?void 0:g.owned.length)??0),{data:A,isLoading:ae,isError:ie}=U({queryKey:["publishable-items",f],queryFn:()=>Ae(f,e.identity),enabled:!!e,retry:!1}),O=m.useMemo(()=>[...new Set((A??[]).map(n=>n.contractAddress))],[A]),{data:S}=U({queryKey:["collection-sale-state",f,O],enabled:O.length>0,queryFn:async()=>{const n=await Promise.all(O.map(async r=>[r,await me(r)])),a={};for(const[r,y]of n)for(const[M,q]of Object.entries(y))a[`${r}-${M}`]=q;return a}}),R=n=>S==null?void 0:S[`${n.contractAddress}-${n.blockchainItemId}`],Q=m.useMemo(()=>(A??[]).filter(n=>{var a;return(a=R(n))==null?void 0:a.isOnSale}),[A,S]),H=m.useMemo(()=>{var a;const n=new Map;for(const r of A??[]){if((a=S==null?void 0:S[`${r.contractAddress}-${r.blockchainItemId}`])!=null&&a.isOnSale)continue;const y=n.get(r.collectionId)??{id:r.collectionId,name:r.collectionName,items:[]};y.items.push(r),n.set(r.collectionId,y)}return[...n.values()]},[A,S]);return e?s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),K>0?s.jsxs(re,{className:"import-banner",to:"/import",children:[s.jsx("span",{className:"import-banner__ico","aria-hidden":!0,children:"📦"}),s.jsxs("span",{className:"import-banner__text",children:[s.jsx("strong",{children:"Import your listings"}),s.jsxs("span",{className:"import-banner__sub",children:["You have ",K," item",K===1?"":"s"," for sale elsewhere — bring them into the Shop."]})]}),s.jsx("span",{className:"import-banner__cta",children:"Import"})]}):null,s.jsxs("div",{className:"myassets__section",children:[s.jsxs("div",{className:"myassets__section-head",children:[s.jsx("h2",{className:"myassets__section-title",children:"Items you own"}),s.jsx("p",{className:"myassets__section-sub",children:"Wearables & emotes you’ve bought — resell them in the Shop."})]}),L?s.jsx("p",{className:"error",children:L.message}):null,w?s.jsx("p",{className:"error",children:w}):null,s.jsxs("div",{className:"asset-grid",children:[I?Array.from({length:8}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${a}`)):d.map(n=>s.jsxs("article",{className:"asset-card asset-card--link",onClick:()=>_(Z(n)),role:"link",tabIndex:0,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),_(Z(n)))},children:[s.jsx("div",{className:"asset-card__img",children:n.image?s.jsx("img",{src:n.image,alt:n.name}):null}),s.jsx("div",{className:"asset-card__name",title:n.name,children:n.name}),n.isOnSale?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"asset-card__listed",children:[s.jsxs("span",{className:"asset-card__price",children:[j.symbol," ",n.listingPrice]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost asset-card__remove",disabled:p===n.id||!n.tradeId,onClick:a=>{a.stopPropagation(),n.tradeId&&C(n.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]}):s.jsx("button",{className:"btn btn--sm",onClick:a=>{a.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:n.itemId??n.tokenId??null}),N(n)},children:"List for sale"})]},n.id)),E?Array.from({length:4}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${a}`)):null]}),s.jsx(_e,{hasNextPage:D,isFetching:E,onLoadMore:()=>h()}),!I&&d.length===0?s.jsx("p",{className:"muted",children:"No items in your inventory yet."}):null]}),s.jsxs("div",{className:"myassets__section",children:[s.jsxs("div",{className:"myassets__section-head",children:[s.jsx("h2",{className:"myassets__section-title",children:"Your creations"}),s.jsxs("p",{className:"myassets__section-sub",children:["Items you made. Put them on sale in the Shop — set a price in ",j.name," and buyers pay with ",j.name,"."]})]}),ae?s.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${a}`))}):ie?s.jsx("p",{className:"publish-empty",children:"We couldn’t load your collections right now. Please try again in a moment."}):Q.length===0&&H.length===0?s.jsx("p",{className:"publish-empty",children:"You don’t have any items to publish yet."}):s.jsxs(s.Fragment,{children:[Q.length>0?s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:"On sale"}),s.jsx("div",{className:"publish-grid",children:Q.map(n=>{var a;return s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>_(F(n)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),_(F(n)))},children:[s.jsx("div",{className:"publish-card__img",children:n.thumbnail?s.jsx("img",{src:n.thumbnail,alt:n.name}):null}),s.jsx("div",{className:"publish-card__name",title:n.name,children:n.name}),s.jsxs("div",{className:"publish-card__listed",children:[s.jsxs("span",{className:"publish-card__price",children:[j.symbol," ",((a=R(n))==null?void 0:a.priceCredits)??0]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost publish-card__cta",disabled:p===n.id,onClick:r=>{r.stopPropagation();const y=R(n);y!=null&&y.tradeId&&C(y.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]},`${n.contractAddress}-${n.blockchainItemId}`)})})]}):null,H.map(n=>s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:n.name}),s.jsx("div",{className:"publish-grid",children:n.items.map(a=>s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>_(F(a)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),_(F(a)))},children:[s.jsx("div",{className:"publish-card__img",children:a.thumbnail?s.jsx("img",{src:a.thumbnail,alt:a.name}):null}),s.jsx("div",{className:"publish-card__name",title:a.name,children:a.name}),s.jsxs("div",{className:"publish-card__meta",children:[s.jsx("span",{className:"publish-chip publish-chip--rarity",children:a.rarity}),s.jsxs("span",{className:"publish-card__supply",children:[a.remainingSupply.toLocaleString()," available"]})]}),s.jsx("button",{className:"btn btn--sm btn--purple publish-card__cta",onClick:r=>{r.stopPropagation(),P("Shop Started Listing",{listing_type:"primary",item_id:a.blockchainItemId}),v(a)},children:"Put on sale"})]},`${a.contractAddress}-${a.blockchainItemId}`))})]},n.id))]})]}),k?s.jsx(Le,{asset:k,session:e,onClose:()=>N(null)}):null,u?s.jsx(qe,{item:u,session:e,onClose:()=>v(null)}):null]}):s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),s.jsx("p",{className:"muted",children:"Sign in to sell your items."}),s.jsx("div",{className:"connect-row",children:s.jsx("button",{className:"btn btn--purple",onClick:()=>t(),children:"Sign in"})}),i?s.jsx("p",{className:"error",children:i}):null]})}export{Be as MyAssets};
1
+ import{b as Y,r as m,j as s,L as re}from"./react-E8ng6RF2.js";import{y as z,i as W,T as le,l as G,C as j,p as ee,t as P,G as B,s as V,v as se,c as ce,e as U,U as oe,h as de,V as me}from"./index-D9auFFhw.js";import{f as ue}from"./import-CM2Acb8u.js";import{a as he,b as pe,i as be,e as ge,c as ye,d as fe}from"./buy-Fa44beN-.js";import{s as xe}from"./wallet-kind-Ct-yzkUJ.js";import{L as _e}from"./LoadMore-DB6TwvRe.js";import{u as je}from"./useInfiniteGrid-DlBWvPPH.js";import"./ethers-BxoDGoYp.js";import"./mana-rate-ht8qDfqA.js";import"./index-D6de3csH.js";const T=()=>`${W.builderServerUrl}/v1`;function ne(e){return Array.isArray(e)?e:"results"in e&&Array.isArray(e.results)?e.results:"data"in e&&Array.isArray(e.data)?e.data:[]}async function te(e,i){const t=await le(e,{method:"GET",identity:i,metadata:{}});if(!t.ok)throw new Error(`builder-server ${t.status}: ${await t.text()}`);const o=await t.json();return o.data??o}function Ne(e,i){const t=i-e;return t>0?t:0}function ve(e){var i,t,o,l,c;return((t=(i=e.data)==null?void 0:i.wearable)==null?void 0:t.category)??((l=(o=e.data)==null?void 0:o.emote)==null?void 0:l.category)??((c=e.data)==null?void 0:c.category)??e.type??"wearable"}function J(e){return`${T()}/storage/contents/${e}`}function $(e,i){if(!e)return"";if(/^https?:\/\//.test(e))return e;const t=i==null?void 0:i[e];return t?J(t):/^(ba|Qm)/.test(e)?J(e):""}async function Ie(e,i){try{const t=await fetch(`${T()}/items/${e}/${i}/contents`);if(!t.ok)return{};const o=await t.json();return o.data??o}catch{return{}}}async function ke(e,i,t){const o=$(e.thumbnail,e.contents)||$("thumbnail.png",e.contents);if(o)return o;if(i&&t){const l=await Ie(i,t);return $(e.thumbnail,l)||$("thumbnail.png",l)||$("image.png",l)}return""}async function we(e,i){const t=`${T()}/${e.toLowerCase()}/collections?is_published=true`,o=await te(t,i);return ne(o).filter(l=>l.is_published&&!!l.contract_address).map(l=>({id:l.id,name:l.name,contractAddress:l.contract_address.toLowerCase(),isPublished:l.is_published,isApproved:l.is_approved,minters:(l.minters??[]).map(c=>c.toLowerCase())}))}async function Se(e,i){const t=`${T()}/collections/${e.id}/items`,o=await te(t,i);return(await Promise.all(ne(o).map(async c=>{const k=c.rarity??"common",N=Number(c.total_supply??0)||0;let u=0;try{u=z.Rarity.getMaxSupply(k)}catch{u=0}const v=(c.contract_address??e.contractAddress).toLowerCase(),p=c.blockchain_item_id??"";return{id:c.id,collectionId:e.id,collectionName:e.name,contractAddress:v,blockchainItemId:p,name:c.name,category:ve(c),rarity:k,thumbnail:await ke(c,v,p),type:c.type??"wearable",isPublished:c.is_published??e.isPublished,isApproved:c.is_approved??e.isApproved,totalSupply:N,maxSupply:u,remainingSupply:Ne(N,u),minters:e.minters}}))).filter(Ce)}function Ce(e){return e.isPublished&&e.isApproved&&e.blockchainItemId!==""&&e.blockchainItemId!=null&&e.remainingSupply>0}async function Ae(e,i){const t=await we(e,i);return(await Promise.all(t.map(async l=>{try{return await Se(l,i)}catch{return[]}}))).flat()}const Pe=1e3*60*60*24*182;function $e(e){const i=e,t=(i.message??"").toLowerCase();return i.code===4001||t.includes("reject")||t.includes("denied")||t.includes("cancel")?"You cancelled the request.":"Couldn't list your item — please try again."}function Le({asset:e,session:i,onClose:t}){const o=G(),l=Y(),[c,k]=m.useState("10"),[N,u]=m.useState(null),[v,p]=m.useState(null),[b,w]=m.useState(!1),[x,_]=m.useState(null);async function C(){p(null);const d=Number(c);if(!Number.isInteger(d)||d<=0){p("Enter a whole number of credits");return}w(!0);try{u("Getting your item ready…"),await he({signer:i.signer,contractAddress:e.contractAddress,chainId:e.chainId}),u("Listing your item…");const I=await pe({signer:i.signer,nft:{contractAddress:e.contractAddress,tokenId:e.tokenId,network:e.network,chainId:e.chainId},usdPrice:d/10,expiresAtMs:Date.now()+Pe});u("Publishing…"),await ee(I,i.identity),u(null),_(d),P("Shop Listed Item",{item_id:e.itemId??e.tokenId??null,contract_address:e.contractAddress,price_credits:d,price_usd:d/10,listing_type:"secondary",is_primary:!1}),B.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["my-assets",i.address]})}catch(I){V(I,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:se(I)}),p($e(I)),u(null)}finally{w(!1)}}function f(){t(),l(`/item/${e.contractAddress}/${e.tokenId}`)}return x!==null?s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:d=>d.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),s.jsx("h2",{className:"modal__title",children:"It’s on sale! 🎉"}),e.image?s.jsx("img",{className:"modal__img",src:e.image,alt:e.name}):null,s.jsx("p",{className:"modal-success__name",children:e.name}),s.jsxs("p",{className:"muted small",children:["Listed for ",s.jsxs("strong",{children:[j.symbol," ",x]})]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:f,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:d=>d.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsxs("h2",{className:"modal__title",children:["List “",e.name,"”"]}),e.image?s.jsx("img",{className:"modal__img",src:e.image,alt:e.name}):null,s.jsxs("label",{className:"field",children:[s.jsxs("span",{children:["Price (",j.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:d=>k(d.target.value),disabled:b})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",j.name," (1 ",j.nameSingular," = $0.10)."]}),N?s.jsx("p",{className:"muted",children:N}):null,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,disabled:b,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:C,disabled:b,children:b?"Working…":"List for sale"})]})]})})}const Ee=1e3*60*60*24*182;function Me(e){const i=e,t=(i.message??"").toLowerCase();return i.code===4001||t.includes("reject")||t.includes("denied")||t.includes("cancel")?"You cancelled the request.":"Couldn't publish your item — please try again."}function qe({item:e,session:i,onClose:t}){const o=G(),l=Y(),[c,k]=m.useState("10"),[N,u]=m.useState(null),[v,p]=m.useState(null),[b,w]=m.useState(!1),[x,_]=m.useState(null),[C,f]=m.useState(null),d=W.chainId,I=xe(i.providerType);m.useEffect(()=>{let h=!1;return(async()=>{try{const g=await be({contractAddress:e.contractAddress,chainId:d});h||_(g)}catch{h||_(!1)}})(),()=>{h=!0}},[e.contractAddress,d]);async function L(){p(null);const h=Number(c);if(!Number.isInteger(h)||h<=0){p("Enter a whole number of credits");return}w(!0);try{x||(u("Enabling sales for this collection…"),await ge({signer:i.signer,contractAddress:e.contractAddress,chainId:d}),_(!0)),u("Publishing your item…");const g=await ye({signer:i.signer,item:{contractAddress:e.contractAddress,itemId:e.blockchainItemId,network:z.Network.MATIC,chainId:d},usdPrice:h/10,uses:e.remainingSupply,expiresAtMs:Date.now()+Ee});u("Finishing up…"),await ee(g,i.identity),u(null),f(h),P("Shop Listed Item",{item_id:e.blockchainItemId,contract_address:e.contractAddress,price_credits:h,price_usd:h/10,listing_type:"primary",is_primary:!0}),B.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["publishable-items"]}),o.invalidateQueries({queryKey:["collection-sale-state"]})}catch(g){V(g,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:se(g)}),p(Me(g)),u(null)}finally{w(!1)}}function D(){t(),l(`/item/${e.contractAddress}/${e.blockchainItemId}`)}const E=b?"Working…":x===!1?"Enable & publish":"Publish for sale";return C!==null?s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal modal--success",onClick:h=>h.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsx("div",{className:"modal-success__check","aria-hidden":!0,children:"✓"}),s.jsx("h2",{className:"modal__title",children:"It’s on sale! 🎉"}),e.thumbnail?s.jsx("img",{className:"modal__img",src:e.thumbnail,alt:e.name}):null,s.jsx("p",{className:"modal-success__name",children:e.name}),s.jsxs("p",{className:"muted small",children:["Listed for ",s.jsxs("strong",{children:[j.symbol," ",C]})," · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:D,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:t,role:"presentation",children:s.jsxs("div",{className:"modal",onClick:h=>h.stopPropagation(),role:"dialog","aria-modal":"true",children:[s.jsxs("h2",{className:"modal__title",children:["Publish “",e.name,"”"]}),e.thumbnail?s.jsx("img",{className:"modal__img",src:e.thumbnail,alt:e.name}):null,s.jsxs("p",{className:"muted small",children:["From your collection “",e.collectionName,"” · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("label",{className:"field",children:[s.jsxs("span",{children:["Price (",j.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:h=>k(h.target.value),disabled:b})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",j.name," (1 ",j.nameSingular," = $0.10)."]}),x===!1&&!b?I?s.jsxs("p",{className:"muted small primary-note",children:["First time selling from “",e.collectionName,"”? It needs a one-time approval, then you’ll confirm the listing — two quick confirmations. After this, listing more items from this collection is a single step."]}):s.jsxs("p",{className:"muted small primary-note",children:["First time selling from “",e.collectionName,"”? Setting it up takes a moment — after that, listing more items from this collection is instant."]}):x===!0&&!b?I?s.jsx("p",{className:"muted small primary-note",children:"This collection is ready — publishing is a single confirmation."}):s.jsx("p",{className:"muted small primary-note",children:"This collection is ready — publishing is instant."}):null,N?s.jsx("p",{className:"muted",children:N}):null,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:t,disabled:b,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:L,disabled:b||x===null,children:x===null?"Checking…":E})]})]})})}const Fe=48;function Z(e){return{id:e.id,name:e.name,creator:"",contractAddress:e.contractAddress,itemId:e.itemId,category:e.category,rarity:e.rarity??"common",network:e.network,chainId:e.chainId,thumbnail:e.image,priceCredits:e.listingPrice??0,gender:null,tokenId:e.tokenId}}function F(e){return{id:`${e.contractAddress}-${e.blockchainItemId}`,name:e.name,creator:"",contractAddress:e.contractAddress,itemId:e.blockchainItemId,category:e.category,rarity:e.rarity,network:"MATIC",chainId:W.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null}}function Be(){const{session:e,error:i,signIn:t,restore:o}=ce(),l=Y(),c=G(),[k,N]=m.useState(null),[u,v]=m.useState(null),[p,b]=m.useState(null),[w,x]=m.useState(null);function _(n){const a=n.tokenId??n.itemId??"";!n.contractAddress||!a||l(`/item/${n.contractAddress}/${a}`,{state:{item:n}})}async function C(n,a,r){if(e){x(null),b(r);try{const y=await de(n);await fe({trade:y,signer:e.signer}),B.success(`“${a}” is no longer for sale.`),await c.invalidateQueries({queryKey:["my-assets",e.address]}),await c.invalidateQueries({queryKey:["collection-sale-state"]})}catch(y){const M=y,q=(M.message??"").toLowerCase(),X=M.code===4001||q.includes("reject")||q.includes("denied");X||V(y,{flow:"remove-listing",tradeId:n}),x(X?"You cancelled the request.":"Couldn't remove the listing — please try again.")}finally{b(null)}}}m.useEffect(()=>{o()},[o]);const f=e==null?void 0:e.address,{items:d,isLoading:I,error:L,hasNextPage:D,isFetchingNextPage:E,fetchNextPage:h}=je(["my-assets",f],n=>oe(f,{first:Fe,skip:n}).then(a=>({items:a.assets,total:a.total})),{enabled:!!f}),{data:g}=U({queryKey:["importable",f],queryFn:()=>ue(f),enabled:!!f}),K=((g==null?void 0:g.creations.length)??0)+((g==null?void 0:g.owned.length)??0),{data:A,isLoading:ae,isError:ie}=U({queryKey:["publishable-items",f],queryFn:()=>Ae(f,e.identity),enabled:!!e,retry:!1}),O=m.useMemo(()=>[...new Set((A??[]).map(n=>n.contractAddress))],[A]),{data:S}=U({queryKey:["collection-sale-state",f,O],enabled:O.length>0,queryFn:async()=>{const n=await Promise.all(O.map(async r=>[r,await me(r)])),a={};for(const[r,y]of n)for(const[M,q]of Object.entries(y))a[`${r}-${M}`]=q;return a}}),R=n=>S==null?void 0:S[`${n.contractAddress}-${n.blockchainItemId}`],Q=m.useMemo(()=>(A??[]).filter(n=>{var a;return(a=R(n))==null?void 0:a.isOnSale}),[A,S]),H=m.useMemo(()=>{var a;const n=new Map;for(const r of A??[]){if((a=S==null?void 0:S[`${r.contractAddress}-${r.blockchainItemId}`])!=null&&a.isOnSale)continue;const y=n.get(r.collectionId)??{id:r.collectionId,name:r.collectionName,items:[]};y.items.push(r),n.set(r.collectionId,y)}return[...n.values()]},[A,S]);return e?s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),K>0?s.jsxs(re,{className:"import-banner",to:"/import",children:[s.jsx("span",{className:"import-banner__ico","aria-hidden":!0,children:"📦"}),s.jsxs("span",{className:"import-banner__text",children:[s.jsx("strong",{children:"Import your listings"}),s.jsxs("span",{className:"import-banner__sub",children:["You have ",K," item",K===1?"":"s"," for sale elsewhere — bring them into the Shop."]})]}),s.jsx("span",{className:"import-banner__cta",children:"Import"})]}):null,s.jsxs("div",{className:"myassets__section",children:[s.jsxs("div",{className:"myassets__section-head",children:[s.jsx("h2",{className:"myassets__section-title",children:"Items you own"}),s.jsx("p",{className:"myassets__section-sub",children:"Wearables & emotes you’ve bought — resell them in the Shop."})]}),L?s.jsx("p",{className:"error",children:L.message}):null,w?s.jsx("p",{className:"error",children:w}):null,s.jsxs("div",{className:"asset-grid",children:[I?Array.from({length:8}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${a}`)):d.map(n=>s.jsxs("article",{className:"asset-card asset-card--link",onClick:()=>_(Z(n)),role:"link",tabIndex:0,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),_(Z(n)))},children:[s.jsx("div",{className:"asset-card__img",children:n.image?s.jsx("img",{src:n.image,alt:n.name}):null}),s.jsx("div",{className:"asset-card__name",title:n.name,children:n.name}),n.isOnSale?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"asset-card__listed",children:[s.jsxs("span",{className:"asset-card__price",children:[j.symbol," ",n.listingPrice]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost asset-card__remove",disabled:p===n.id||!n.tradeId,onClick:a=>{a.stopPropagation(),n.tradeId&&C(n.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]}):s.jsx("button",{className:"btn btn--sm",onClick:a=>{a.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:n.itemId??n.tokenId??null}),N(n)},children:"List for sale"})]},n.id)),E?Array.from({length:4}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${a}`)):null]}),s.jsx(_e,{hasNextPage:D,isFetching:E,onLoadMore:()=>h()}),!I&&d.length===0?s.jsx("p",{className:"muted",children:"No items in your inventory yet."}):null]}),s.jsxs("div",{className:"myassets__section",children:[s.jsxs("div",{className:"myassets__section-head",children:[s.jsx("h2",{className:"myassets__section-title",children:"Your creations"}),s.jsxs("p",{className:"myassets__section-sub",children:["Items you made. Put them on sale in the Shop — set a price in ",j.name," and buyers pay with ",j.name,"."]})]}),ae?s.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((n,a)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${a}`))}):ie?s.jsx("p",{className:"publish-empty",children:"We couldn’t load your collections right now. Please try again in a moment."}):Q.length===0&&H.length===0?s.jsx("p",{className:"publish-empty",children:"You don’t have any items to publish yet."}):s.jsxs(s.Fragment,{children:[Q.length>0?s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:"On sale"}),s.jsx("div",{className:"publish-grid",children:Q.map(n=>{var a;return s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>_(F(n)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),_(F(n)))},children:[s.jsx("div",{className:"publish-card__img",children:n.thumbnail?s.jsx("img",{src:n.thumbnail,alt:n.name}):null}),s.jsx("div",{className:"publish-card__name",title:n.name,children:n.name}),s.jsxs("div",{className:"publish-card__listed",children:[s.jsxs("span",{className:"publish-card__price",children:[j.symbol," ",((a=R(n))==null?void 0:a.priceCredits)??0]}),s.jsx("span",{className:"badge",children:"On sale"})]}),s.jsx("button",{className:"btn btn--sm btn--ghost publish-card__cta",disabled:p===n.id,onClick:r=>{r.stopPropagation();const y=R(n);y!=null&&y.tradeId&&C(y.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]},`${n.contractAddress}-${n.blockchainItemId}`)})})]}):null,H.map(n=>s.jsxs("div",{className:"creations-collection",children:[s.jsx("h3",{className:"creations-collection__name",children:n.name}),s.jsx("div",{className:"publish-grid",children:n.items.map(a=>s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>_(F(a)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),_(F(a)))},children:[s.jsx("div",{className:"publish-card__img",children:a.thumbnail?s.jsx("img",{src:a.thumbnail,alt:a.name}):null}),s.jsx("div",{className:"publish-card__name",title:a.name,children:a.name}),s.jsxs("div",{className:"publish-card__meta",children:[s.jsx("span",{className:"publish-chip publish-chip--rarity",children:a.rarity}),s.jsxs("span",{className:"publish-card__supply",children:[a.remainingSupply.toLocaleString()," available"]})]}),s.jsx("button",{className:"btn btn--sm btn--purple publish-card__cta",onClick:r=>{r.stopPropagation(),P("Shop Started Listing",{listing_type:"primary",item_id:a.blockchainItemId}),v(a)},children:"Put on sale"})]},`${a.contractAddress}-${a.blockchainItemId}`))})]},n.id))]})]}),k?s.jsx(Le,{asset:k,session:e,onClose:()=>N(null)}):null,u?s.jsx(qe,{item:u,session:e,onClose:()=>v(null)}):null]}):s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),s.jsx("p",{className:"muted",children:"Sign in to sell your items."}),s.jsx("div",{className:"connect-row",children:s.jsx("button",{className:"btn btn--purple",onClick:()=>t(),children:"Sign in"})}),i?s.jsx("p",{className:"error",children:i}):null]})}export{Be as MyAssets};
@@ -1 +1 @@
1
- import{r as o,j as s,L as n}from"./react-E8ng6RF2.js";import{u as c,A as l}from"./index-DDLsPu5_.js";import{L as m}from"./LoadMore-DB6TwvRe.js";import"./ethers-BxoDGoYp.js";const i=24;function v(){const t=c(e=>Object.values(e.items)),[a,r]=o.useState(i);return t.length===0?s.jsxs("div",{className:"favorites-empty",children:[s.jsx("span",{className:"ico ico-heart favorites-empty__ico","aria-hidden":!0}),s.jsx("p",{className:"favorites-empty__title",children:"No favorites yet"}),s.jsx("p",{className:"muted",children:"Tap the heart on any item to save it here."}),s.jsx(n,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):s.jsxs("section",{className:"favorites",children:[s.jsxs("div",{className:"favorites__head",children:[s.jsx("h1",{children:"My Favorites"}),s.jsxs("span",{className:"favorites__count",children:[t.length," item",t.length>1?"s":""]})]}),s.jsx("div",{className:"grid",children:t.slice(0,a).map(e=>s.jsx(l,{item:e},e.id))}),s.jsx(m,{hasNextPage:a<t.length,isFetching:!1,onLoadMore:()=>r(e=>e+i)})]})}export{v as MyFavorites};
1
+ import{r as o,j as s,L as n}from"./react-E8ng6RF2.js";import{u as c,A as l}from"./index-D9auFFhw.js";import{L as m}from"./LoadMore-DB6TwvRe.js";import"./ethers-BxoDGoYp.js";const i=24;function v(){const t=c(e=>Object.values(e.items)),[a,r]=o.useState(i);return t.length===0?s.jsxs("div",{className:"favorites-empty",children:[s.jsx("span",{className:"ico ico-heart favorites-empty__ico","aria-hidden":!0}),s.jsx("p",{className:"favorites-empty__title",children:"No favorites yet"}),s.jsx("p",{className:"muted",children:"Tap the heart on any item to save it here."}),s.jsx(n,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):s.jsxs("section",{className:"favorites",children:[s.jsxs("div",{className:"favorites__head",children:[s.jsx("h1",{children:"My Favorites"}),s.jsxs("span",{className:"favorites__count",children:[t.length," item",t.length>1?"s":""]})]}),s.jsx("div",{className:"grid",children:t.slice(0,a).map(e=>s.jsx(l,{item:e},e.id))}),s.jsx(m,{hasNextPage:a<t.length,isFetching:!1,onLoadMore:()=>r(e=>e+i)})]})}export{v as MyFavorites};
@@ -1 +1 @@
1
- import{j as e,L as o}from"./react-E8ng6RF2.js";import{c as u,d as l,e as m,C as p,g as x}from"./index-DDLsPu5_.js";import{L as _}from"./LoadMore-DB6TwvRe.js";import{u as j}from"./useInfiniteGrid-6pBFQ8Kh.js";import"./ethers-BxoDGoYp.js";const N=24;function g(s){try{return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}function f({status:s}){return s==="PENDING"?e.jsx("span",{className:"purchase__badge purchase__badge--pending",children:"Processing"}):e.jsx("span",{className:"purchase__badge purchase__badge--done",children:"Completed"})}function y({purchase:s}){const{data:a}=m({queryKey:["trade-display",s.tradeId],queryFn:()=>x(s.tradeId),enabled:!!s.tradeId,staleTime:3e5}),t=(a==null?void 0:a.name)??"Item",i=(a==null?void 0:a.thumbnail)??"",n=(a==null?void 0:a.tokenId)??(a==null?void 0:a.itemId)??"",h=a!=null&&a.contractAddress&&n?`/item/${a.contractAddress}/${n}`:void 0,c=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"purchase__thumb",children:i?e.jsx("img",{src:i,alt:t}):null}),e.jsxs("div",{className:"purchase__info",children:[e.jsx("div",{className:"purchase__name",title:t,children:t}),e.jsx("div",{className:"muted purchase__date",children:g(s.createdAt)})]}),e.jsx(f,{status:s.status}),e.jsxs("div",{className:"purchase__price",children:[p.symbol," ",s.credits]})]});return h?e.jsx(o,{className:"purchase",to:h,children:c}):e.jsx("div",{className:"purchase",children:c})}function L(){const{session:s}=u(),{items:a,isLoading:t,hasNextPage:i,isFetchingNextPage:n,fetchNextPage:h}=j(["purchases",s==null?void 0:s.address],r=>l(s.address,s.identity,{first:N,skip:r}),{enabled:!!s});if(!s)return e.jsxs("div",{className:"purchases-empty",children:[e.jsx("span",{className:"ico ico-cart purchases-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"purchases-empty__title",children:"Sign in to see your purchases"}),e.jsx("p",{className:"muted",children:"Your order history shows up here once you sign in."})]});const c=a.filter(r=>r.status!=="EXPIRED");return!t&&c.length===0?e.jsxs("div",{className:"purchases-empty",children:[e.jsx("span",{className:"ico ico-cart purchases-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"purchases-empty__title",children:"No purchases yet"}),e.jsx("p",{className:"muted",children:"When you buy something it’ll appear here."}),e.jsx(o,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):e.jsxs("section",{className:"purchases",children:[e.jsxs("div",{className:"purchases__head",children:[e.jsx("h1",{children:"My Purchases"}),t?null:e.jsxs("span",{className:"purchases__count",children:[c.length," order",c.length>1?"s":""]})]}),e.jsx("div",{className:"purchases__list",children:t?Array.from({length:4}).map((r,d)=>e.jsx("div",{className:"purchase purchase--skeleton"},d)):e.jsxs(e.Fragment,{children:[c.map(r=>e.jsx(y,{purchase:r},r.id)),n?Array.from({length:2}).map((r,d)=>e.jsx("div",{className:"purchase purchase--skeleton"},`m-${d}`)):null]})}),e.jsx(_,{hasNextPage:i,isFetching:n,onLoadMore:()=>h()})]})}export{L as MyPurchases};
1
+ import{j as e,L as o}from"./react-E8ng6RF2.js";import{c as u,d as l,e as m,C as p,g as x}from"./index-D9auFFhw.js";import{L as _}from"./LoadMore-DB6TwvRe.js";import{u as j}from"./useInfiniteGrid-DlBWvPPH.js";import"./ethers-BxoDGoYp.js";const N=24;function g(s){try{return new Date(s).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return""}}function f({status:s}){return s==="PENDING"?e.jsx("span",{className:"purchase__badge purchase__badge--pending",children:"Processing"}):e.jsx("span",{className:"purchase__badge purchase__badge--done",children:"Completed"})}function y({purchase:s}){const{data:a}=m({queryKey:["trade-display",s.tradeId],queryFn:()=>x(s.tradeId),enabled:!!s.tradeId,staleTime:3e5}),t=(a==null?void 0:a.name)??"Item",i=(a==null?void 0:a.thumbnail)??"",n=(a==null?void 0:a.tokenId)??(a==null?void 0:a.itemId)??"",h=a!=null&&a.contractAddress&&n?`/item/${a.contractAddress}/${n}`:void 0,c=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"purchase__thumb",children:i?e.jsx("img",{src:i,alt:t}):null}),e.jsxs("div",{className:"purchase__info",children:[e.jsx("div",{className:"purchase__name",title:t,children:t}),e.jsx("div",{className:"muted purchase__date",children:g(s.createdAt)})]}),e.jsx(f,{status:s.status}),e.jsxs("div",{className:"purchase__price",children:[p.symbol," ",s.credits]})]});return h?e.jsx(o,{className:"purchase",to:h,children:c}):e.jsx("div",{className:"purchase",children:c})}function L(){const{session:s}=u(),{items:a,isLoading:t,hasNextPage:i,isFetchingNextPage:n,fetchNextPage:h}=j(["purchases",s==null?void 0:s.address],r=>l(s.address,s.identity,{first:N,skip:r}),{enabled:!!s});if(!s)return e.jsxs("div",{className:"purchases-empty",children:[e.jsx("span",{className:"ico ico-cart purchases-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"purchases-empty__title",children:"Sign in to see your purchases"}),e.jsx("p",{className:"muted",children:"Your order history shows up here once you sign in."})]});const c=a.filter(r=>r.status!=="EXPIRED");return!t&&c.length===0?e.jsxs("div",{className:"purchases-empty",children:[e.jsx("span",{className:"ico ico-cart purchases-empty__ico","aria-hidden":!0}),e.jsx("p",{className:"purchases-empty__title",children:"No purchases yet"}),e.jsx("p",{className:"muted",children:"When you buy something it’ll appear here."}),e.jsx(o,{className:"btn btn--purple",to:"/assets",children:"Browse the shop"})]}):e.jsxs("section",{className:"purchases",children:[e.jsxs("div",{className:"purchases__head",children:[e.jsx("h1",{children:"My Purchases"}),t?null:e.jsxs("span",{className:"purchases__count",children:[c.length," order",c.length>1?"s":""]})]}),e.jsx("div",{className:"purchases__list",children:t?Array.from({length:4}).map((r,d)=>e.jsx("div",{className:"purchase purchase--skeleton"},d)):e.jsxs(e.Fragment,{children:[c.map(r=>e.jsx(y,{purchase:r},r.id)),n?Array.from({length:2}).map((r,d)=>e.jsx("div",{className:"purchase purchase--skeleton"},`m-${d}`)):null]})}),e.jsx(_,{hasNextPage:i,isFetching:n,onLoadMore:()=>h()})]})}export{L as MyPurchases};
@@ -1,2 +1,2 @@
1
- import{g as Ee,R as a,r as be,j as W}from"./react-E8ng6RF2.js";import{i as ke}from"./index-DDLsPu5_.js";import"./ethers-BxoDGoYp.js";var q={exports:{}},D,V;function Pe(){if(V)return D;V=1;var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return D=n,D}var B,G;function we(){if(G)return B;G=1;var n=Pe();function e(){}function t(){}return t.resetWarningCache=e,B=function(){function r(u,s,c,y,f,S){if(S!==n){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}}r.isRequired=r;function o(){return r}var i={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:t,resetWarningCache:e};return i.PropTypes=i,i},B}var J;function Re(){return J||(J=1,q.exports=we()()),q.exports}var xe=Re();const d=Ee(xe);var re="https://js.stripe.com/v3",je=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;var Oe=function(){for(var e=document.querySelectorAll('script[src^="'.concat(re,'"]')),t=0;t<e.length;t++){var r=e[t];if(je.test(r.src))return r}return null},z=function(e){var t="",r=document.createElement("script");r.src="".concat(re).concat(t);var o=document.head||document.body;if(!o)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(r),r},Te=function(e,t){!e||!e._registerWrapper||e._registerWrapper({name:"stripe-js",version:"4.6.0",startTime:t})},R=null,N=null,L=null,Ae=function(e){return function(){e(new Error("Failed to load Stripe.js"))}},Ne=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}},Le=function(e){return R!==null?R:(R=new Promise(function(t,r){if(typeof window>"u"||typeof document>"u"){t(null);return}if(window.Stripe){t(window.Stripe);return}try{var o=Oe();if(!(o&&e)){if(!o)o=z(e);else if(o&&L!==null&&N!==null){var i;o.removeEventListener("load",L),o.removeEventListener("error",N),(i=o.parentNode)===null||i===void 0||i.removeChild(o),o=z(e)}}L=Ne(t,r),N=Ae(r),o.addEventListener("load",L),o.addEventListener("error",N)}catch(u){r(u);return}}),R.catch(function(t){return R=null,Promise.reject(t)}))},Ie=function(e,t,r){if(e===null)return null;var o=e.apply(void 0,t);return Te(o,r),o},x,ne=!1,oe=function(){return x||(x=Le(null).catch(function(e){return x=null,Promise.reject(e)}),x)};Promise.resolve().then(function(){return oe()}).catch(function(n){ne||console.warn(n)});var Ue=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];ne=!0;var o=Date.now();return oe().then(function(i){return Ie(i,t,o)})};function H(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable})),t.push.apply(t,r)}return t}function X(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?H(Object(t),!0).forEach(function(r){ie(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):H(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function I(n){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?I=function(e){return typeof e}:I=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},I(n)}function ie(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ae(n,e){return _e(n)||We(n,e)||qe(n,e)||De()}function _e(n){if(Array.isArray(n))return n}function We(n,e){var t=n&&(typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"]);if(t!=null){var r=[],o=!0,i=!1,u,s;try{for(t=t.call(n);!(o=(u=t.next()).done)&&(r.push(u.value),!(e&&r.length===e));o=!0);}catch(c){i=!0,s=c}finally{try{!o&&t.return!=null&&t.return()}finally{if(i)throw s}}return r}}function qe(n,e){if(n){if(typeof n=="string")return Q(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Q(n,e)}}function Q(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function De(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1
+ import{g as Ee,R as a,r as be,j as W}from"./react-E8ng6RF2.js";import{i as ke}from"./index-D9auFFhw.js";import"./ethers-BxoDGoYp.js";var q={exports:{}},D,V;function Pe(){if(V)return D;V=1;var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return D=n,D}var B,G;function we(){if(G)return B;G=1;var n=Pe();function e(){}function t(){}return t.resetWarningCache=e,B=function(){function r(u,s,c,y,f,S){if(S!==n){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}}r.isRequired=r;function o(){return r}var i={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:t,resetWarningCache:e};return i.PropTypes=i,i},B}var J;function Re(){return J||(J=1,q.exports=we()()),q.exports}var xe=Re();const d=Ee(xe);var re="https://js.stripe.com/v3",je=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/;var Oe=function(){for(var e=document.querySelectorAll('script[src^="'.concat(re,'"]')),t=0;t<e.length;t++){var r=e[t];if(je.test(r.src))return r}return null},z=function(e){var t="",r=document.createElement("script");r.src="".concat(re).concat(t);var o=document.head||document.body;if(!o)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(r),r},Te=function(e,t){!e||!e._registerWrapper||e._registerWrapper({name:"stripe-js",version:"4.6.0",startTime:t})},R=null,N=null,L=null,Ae=function(e){return function(){e(new Error("Failed to load Stripe.js"))}},Ne=function(e,t){return function(){window.Stripe?e(window.Stripe):t(new Error("Stripe.js not available"))}},Le=function(e){return R!==null?R:(R=new Promise(function(t,r){if(typeof window>"u"||typeof document>"u"){t(null);return}if(window.Stripe){t(window.Stripe);return}try{var o=Oe();if(!(o&&e)){if(!o)o=z(e);else if(o&&L!==null&&N!==null){var i;o.removeEventListener("load",L),o.removeEventListener("error",N),(i=o.parentNode)===null||i===void 0||i.removeChild(o),o=z(e)}}L=Ne(t,r),N=Ae(r),o.addEventListener("load",L),o.addEventListener("error",N)}catch(u){r(u);return}}),R.catch(function(t){return R=null,Promise.reject(t)}))},Ie=function(e,t,r){if(e===null)return null;var o=e.apply(void 0,t);return Te(o,r),o},x,ne=!1,oe=function(){return x||(x=Le(null).catch(function(e){return x=null,Promise.reject(e)}),x)};Promise.resolve().then(function(){return oe()}).catch(function(n){ne||console.warn(n)});var Ue=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];ne=!0;var o=Date.now();return oe().then(function(i){return Ie(i,t,o)})};function H(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(n,o).enumerable})),t.push.apply(t,r)}return t}function X(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?H(Object(t),!0).forEach(function(r){ie(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):H(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function I(n){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?I=function(e){return typeof e}:I=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},I(n)}function ie(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ae(n,e){return _e(n)||We(n,e)||qe(n,e)||De()}function _e(n){if(Array.isArray(n))return n}function We(n,e){var t=n&&(typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"]);if(t!=null){var r=[],o=!0,i=!1,u,s;try{for(t=t.call(n);!(o=(u=t.next()).done)&&(r.push(u.value),!(e&&r.length===e));o=!0);}catch(c){i=!0,s=c}finally{try{!o&&t.return!=null&&t.return()}finally{if(i)throw s}}return r}}function qe(n,e){if(n){if(typeof n=="string")return Q(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Q(n,e)}}function Q(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=n[t];return r}function De(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var C=function(e,t,r){var o=!!r,i=a.useRef(r);a.useEffect(function(){i.current=r},[r]),a.useEffect(function(){if(!o||!e)return function(){};var u=function(){i.current&&i.current.apply(i,arguments)};return e.on(t,u),function(){e.off(t,u)}},[o,t,e,i])},Y=function(e){var t=a.useRef(e);return a.useEffect(function(){t.current=e},[e]),t.current},w=function(e){return e!==null&&I(e)==="object"},Be=function(e){return w(e)&&typeof e.then=="function"},Me=function(e){return w(e)&&typeof e.elements=="function"&&typeof e.createToken=="function"&&typeof e.createPaymentMethod=="function"&&typeof e.confirmCardPayment=="function"},Z="[object Object]",Ye=function n(e,t){if(!w(e)||!w(t))return e===t;var r=Array.isArray(e),o=Array.isArray(t);if(r!==o)return!1;var i=Object.prototype.toString.call(e)===Z,u=Object.prototype.toString.call(t)===Z;if(i!==u)return!1;if(!i&&!r)return e===t;var s=Object.keys(e),c=Object.keys(t);if(s.length!==c.length)return!1;for(var y={},f=0;f<s.length;f+=1)y[s[f]]=!0;for(var S=0;S<c.length;S+=1)y[c[S]]=!0;var m=Object.keys(y);if(m.length!==s.length)return!1;var h=e,k=t,E=function(P){return n(h[P],k[P])};return m.every(E)},Fe=function(e,t,r){return w(e)?Object.keys(e).reduce(function(o,i){var u=!w(t)||!Ye(e[i],t[i]);return r.includes(i)?(u&&console.warn("Unsupported prop change: options.".concat(i," is not a mutable property.")),o):u?X(X({},o||{}),{},ie({},i,e[i])):o},null):null},ue="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",ee=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ue;if(e===null||Me(e))return e;throw new Error(t)},$e=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ue;if(Be(e))return{tag:"async",stripePromise:Promise.resolve(e).then(function(o){return ee(o,t)})};var r=ee(e,t);return r===null?{tag:"empty"}:{tag:"sync",stripe:r}},Ke=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:"react-stripe-js",version:"2.8.1"}),e.registerAppInfo({name:"react-stripe-js",version:"2.8.1",url:"https://stripe.com/docs/stripe-js/react"}))},ce=a.createContext(null);ce.displayName="ElementsContext";var Ve=function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e};d.any,d.object;d.func.isRequired;var se=a.createContext(null);se.displayName="CustomCheckoutSdkContext";var Ge=function(e,t){if(!e)throw new Error("Could not find CustomCheckoutProvider context; You need to wrap the part of your app that ".concat(t," in an <CustomCheckoutProvider> provider."));return e},Je=a.createContext(null);Je.displayName="CustomCheckoutContext";d.any,d.shape({clientSecret:d.string.isRequired,elementsOptions:d.object}).isRequired;var te=function(e){var t=a.useContext(se),r=a.useContext(ce);if(t&&r)throw new Error("You cannot wrap the part of your app that ".concat(e," in both <CustomCheckoutProvider> and <Elements> providers."));return t?Ge(t,e):Ve(r,e)},ze=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},p=function(e,t){var r="".concat(ze(e),"Element"),o=function(c){var y=c.id,f=c.className,S=c.options,m=S===void 0?{}:S,h=c.onBlur,k=c.onFocus,E=c.onReady,j=c.onChange,P=c.onEscape,le=c.onClick,pe=c.onLoadError,fe=c.onLoaderStart,me=c.onNetworksChange,he=c.onConfirm,ve=c.onCancel,Ce=c.onShippingAddressChange,ye=c.onShippingRateChange,O=te("mounts <".concat(r,">")),T="elements"in O?O.elements:null,A="customCheckoutSdk"in O?O.customCheckoutSdk:null,ge=a.useState(null),$=ae(ge,2),v=$[0],Se=$[1],b=a.useRef(null),U=a.useRef(null);C(v,"blur",h),C(v,"focus",k),C(v,"escape",P),C(v,"click",le),C(v,"loaderror",pe),C(v,"loaderstart",fe),C(v,"networkschange",me),C(v,"confirm",he),C(v,"cancel",ve),C(v,"shippingaddresschange",Ce),C(v,"shippingratechange",ye),C(v,"change",j);var _;E&&(e==="expressCheckout"?_=E:_=function(){E(v)}),C(v,"ready",_),a.useLayoutEffect(function(){if(b.current===null&&U.current!==null&&(T||A)){var g=null;A?g=A.createElement(e,m):T&&(g=T.create(e,m)),b.current=g,Se(g),g&&g.mount(U.current)}},[T,A,m]);var K=Y(m);return a.useEffect(function(){if(b.current){var g=Fe(m,K,["paymentRequest"]);g&&"update"in b.current&&b.current.update(g)}},[m,K]),a.useLayoutEffect(function(){return function(){if(b.current&&typeof b.current.destroy=="function")try{b.current.destroy(),b.current=null}catch{}}},[]),a.createElement("div",{id:y,className:f,ref:U})},i=function(c){te("mounts <".concat(r,">"));var y=c.id,f=c.className;return a.createElement("div",{id:y,className:f})},u=t?i:o;return u.propTypes={id:d.string,className:d.string,onChange:d.func,onBlur:d.func,onFocus:d.func,onReady:d.func,onEscape:d.func,onClick:d.func,onLoadError:d.func,onLoaderStart:d.func,onNetworksChange:d.func,onConfirm:d.func,onCancel:d.func,onShippingAddressChange:d.func,onShippingRateChange:d.func,options:d.object},u.displayName=r,u.__elementType=e,u},l=typeof window>"u",F=a.createContext(null);F.displayName="EmbeddedCheckoutProviderContext";var de=function(){var e=a.useContext(F);if(!e)throw new Error("<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>");return e},He="Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",Xe=function(e){var t=e.stripe,r=e.options,o=e.children,i=a.useMemo(function(){return $e(t,He)},[t]),u=a.useRef(null),s=a.useRef(null),c=a.useState({embeddedCheckout:null}),y=ae(c,2),f=y[0],S=y[1];a.useEffect(function(){if(!(s.current||u.current)){var k=function(j){s.current||u.current||(s.current=j,u.current=s.current.initEmbeddedCheckout(r).then(function(P){S({embeddedCheckout:P})}))};i.tag==="async"&&!s.current&&(r.clientSecret||r.fetchClientSecret)?i.stripePromise.then(function(E){E&&k(E)}):i.tag==="sync"&&!s.current&&(r.clientSecret||r.fetchClientSecret)&&k(i.stripe)}},[i,r,f,s]),a.useEffect(function(){return function(){f.embeddedCheckout?(u.current=null,f.embeddedCheckout.destroy()):u.current&&u.current.then(function(){u.current=null,f.embeddedCheckout&&f.embeddedCheckout.destroy()})}},[f.embeddedCheckout]),a.useEffect(function(){Ke(s)},[s]);var m=Y(t);a.useEffect(function(){m!==null&&m!==t&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.")},[m,t]);var h=Y(r);return a.useEffect(function(){if(h!=null){if(r==null){console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.");return}r.clientSecret===void 0&&r.fetchClientSecret===void 0&&console.warn("Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`."),h.clientSecret!=null&&r.clientSecret!==h.clientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),h.fetchClientSecret!=null&&r.fetchClientSecret!==h.fetchClientSecret&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead."),h.onComplete!=null&&r.onComplete!==h.onComplete&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it."),h.onShippingDetailsChange!=null&&r.onShippingDetailsChange!==h.onShippingDetailsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it."),h.onLineItemsChange!=null&&r.onLineItemsChange!==h.onLineItemsChange&&console.warn("Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.")}},[h,r]),a.createElement(F.Provider,{value:f},o)},Qe=function(e){var t=e.id,r=e.className,o=de(),i=o.embeddedCheckout,u=a.useRef(!1),s=a.useRef(null);return a.useLayoutEffect(function(){return!u.current&&i&&s.current!==null&&(i.mount(s.current),u.current=!0),function(){if(u.current&&i)try{i.unmount(),u.current=!1}catch{}}},[i]),a.createElement("div",{ref:s,id:t,className:r})},Ze=function(e){var t=e.id,r=e.className;return de(),a.createElement("div",{id:t,className:r})},et=l?Ze:Qe;p("auBankAccount",l);p("card",l);p("cardNumber",l);p("cardExpiry",l);p("cardCvc",l);p("fpxBank",l);p("iban",l);p("idealBank",l);p("p24Bank",l);p("epsBank",l);p("payment",l);p("expressCheckout",l);p("currencySelector",l);p("paymentRequestButton",l);p("linkAuthentication",l);p("address",l);p("shippingAddress",l);p("paymentMethodMessaging",l);p("affirmMessage",l);p("afterpayClearpayMessage",l);let M=null;function tt(){return M||(M=Ue(ke.stripePublishableKey)),M}function it({clientSecret:n,onComplete:e}){const t=be.useMemo(()=>({clientSecret:n,onComplete:e}),[n,e]);return W.jsx("div",{className:"stripe-embed",children:W.jsx(Xe,{stripe:tt(),options:t,children:W.jsx(et,{})})})}export{it as RealCheckout,it as default};