@dcl/shop 0.1.0-28849951791.commit-e0fa315 → 0.1.0-28932549025.commit-bf7f508
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.
- package/assets/{Assets-uXzVK3Qk.js → Assets-BujUhYkv.js} +1 -1
- package/assets/{Cart-B_feHFWP.js → Cart-FNZ94bWY.js} +1 -1
- package/assets/{CircularProgress-MlGhFCHM.js → CircularProgress-ZR4J-Sbl.js} +1 -1
- package/assets/{Collection-HISXJvQ9.js → Collection-COER4zdn.js} +1 -1
- package/assets/{Creator-DckKaL-1.js → Creator-CQNwGndX.js} +1 -1
- package/assets/{ExchangeController-Baa0YVeA.js → ExchangeController-DYLjax0w.js} +1 -1
- package/assets/{GetCredits-DqKwryal.js → GetCredits-DJpx8KpO.js} +2 -2
- package/assets/{HelpersUtil-BVXkvMyH.js → HelpersUtil-vurw2A1z.js} +1 -1
- package/assets/{ImportListings-3PSkCxI9.js → ImportListings-DuqQ6Jgj.js} +1 -1
- package/assets/{ItemDetail-Ck5cudTI.js → ItemDetail-CQLF904x.js} +1 -1
- package/assets/{Market-r9wggpqR.js → Market-CdcFBQlb.js} +1 -1
- package/assets/{MenuItem-CTKZTFhj.js → MenuItem-C6RL1xjp.js} +1 -1
- package/assets/{MyAssets-DbjlwVgI.js → MyAssets-bWDlTQOG.js} +1 -1
- package/assets/{MyFavorites-CUJsTl4U.js → MyFavorites-DyvIdUeN.js} +1 -1
- package/assets/{MyPurchases-D231IumZ.js → MyPurchases-C7Lqy3R3.js} +1 -1
- package/assets/{NotFound-MYCYhimC.js → NotFound-DoSj3Etz.js} +1 -1
- package/assets/{RealCheckout-_Z3g7ZbH.js → RealCheckout-DUmY2ogs.js} +1 -1
- package/assets/{ShopFooterInner-gDzKrctg.js → ShopFooterInner-C54HCfML.js} +2 -2
- package/assets/{Success-vyQPaFjH.js → Success-ByHSUAuN.js} +1 -1
- package/assets/{SvgIcon-DHNKm7fg.js → SvgIcon-BqJFz3VM.js} +1 -1
- package/assets/{SwapController-C28NtHea.js → SwapController-D0ZmLlF0.js} +1 -1
- package/assets/{TradeService-CV6tm-S-.js → TradeService-Cq9Kocx0.js} +1 -1
- package/assets/{W3MFrameProviderSingleton-CPW2Gx43.js → W3MFrameProviderSingleton-C5A3kn4T.js} +3 -3
- package/assets/{WebCryptoP256-CJ8gEFrP.js → WebCryptoP256-BEHfVl9k.js} +1 -1
- package/assets/{basic-Cp5xCH29.js → basic-CzBqdVq_.js} +1 -1
- package/assets/{biconomy-DE6VN2MK.js → biconomy-D2IO7-Vh.js} +1 -1
- package/assets/{buy-DW_YPH6-.js → buy--mkRbwSZ.js} +1 -1
- package/assets/{buy-gasless-C0vjtz9e.js → buy-gasless-CRAZ_y0W.js} +1 -1
- package/assets/{ccip-CO-J9tPJ.js → ccip-Bbwp7Y7G.js} +1 -1
- package/assets/{ccip-Dw1-xWm0.js → ccip-BuXiBgVj.js} +1 -1
- package/assets/{collection-gU9snfSG.js → collection-DdvZ5Upq.js} +1 -1
- package/assets/{controller-Dp-L0bGU.js → controller-8aPhQ3Ob.js} +2 -2
- package/assets/{core-DOKNMejd.js → core-Zi2be1A0.js} +4 -4
- package/assets/{custom-DrZvVkR4.js → custom-BBhRsdoH.js} +1 -1
- package/assets/{data-capture-CWmntLCH.js → data-capture-D0FkuP7m.js} +1 -1
- package/assets/{decimals-BpJkRsKM.js → decimals-B4Wcc3nQ.js} +1 -1
- package/assets/decimals-CKxe6tis.js +1 -0
- package/assets/{detectExtension-BOrmaly3.js → detectExtension-D9Ng23Ko.js} +1 -1
- package/assets/{email-DTaLpEKv.js → email-BjdmVby2.js} +1 -1
- package/assets/{embedded-wallet-DVickMII.js → embedded-wallet-BQTVrKtU.js} +1 -1
- package/assets/{engine-Cyf0wDMH.js → engine-C1o0gbbJ.js} +1 -1
- package/assets/{estimate-l1-fee-Ci_3qNsd.js → estimate-l1-fee-DfhCFsH-.js} +1 -1
- package/assets/{eth_estimateGas-Bu7KbsjJ.js → eth_estimateGas-B4AoZ532.js} +1 -1
- package/assets/{eth_getStorageAt-gEhkd3Dl.js → eth_getStorageAt-oj3DI9vp.js} +1 -1
- package/assets/{eth_getTransactionCount-CZrmDIpa.js → eth_getTransactionCount-DwtP8QNs.js} +1 -1
- package/assets/{extractIPFS-HSGbtFdH.js → extractIPFS-CHCsIe4w.js} +1 -1
- package/assets/{features-CjtSZKbI.js → features-Bg16gz9q.js} +1 -1
- package/assets/{fetchTokenMetadata-DcoAGAFy.js → fetchTokenMetadata-2XgHwvnd.js} +2 -2
- package/assets/{generateUtilityClasses-DMMGtITh.js → generateUtilityClasses-0-3IDh_9.js} +1 -1
- package/assets/{get-ecosystem-wallet-info-GpWofI03.js → get-ecosystem-wallet-info-Dg_VVe3W.js} +1 -1
- package/assets/{getBalance-IAhn1Sx7.js → getBalance-B-cNdTcK.js} +1 -1
- package/assets/{getInstalledModules-Clea_yJr.js → getInstalledModules-ooDEftjK.js} +1 -1
- package/assets/{getNFT-CbT_NWLy.js → getNFT-BTBiYc0X.js} +2 -2
- package/assets/{getNFT-BkaCCDU5.js → getNFT-D8WYY7Pm.js} +1 -1
- package/assets/{hashTypedData-PYLB7hJl.js → hashTypedData-CL2XAObj.js} +1 -1
- package/assets/{hashTypedData-DAd66wY6.js → hashTypedData-DB0XHjNJ.js} +1 -1
- package/assets/{import-dVEuzimB.js → import-D9g3ITrS.js} +1 -1
- package/assets/{in-app-wallet-calls-l67EA4DZ.js → in-app-wallet-calls-R5shd6Fi.js} +1 -1
- package/assets/{index-D9XZpwfV.js → index-5JkWHUrM.js} +5 -5
- package/assets/{index-CAXOAo7E.js → index-BF9G9q1o.js} +1 -1
- package/assets/{index-o3xLbiUm.js → index-BG6yXCpy.js} +1 -1
- package/assets/{index-C7St4Q5o.js → index-BG7nEn_n.js} +1 -1
- package/assets/{index-DOLdge0g.js → index-BNJ_FqxV.js} +1 -1
- package/assets/{index-BuedKT8D.js → index-BaWVfLQk.js} +2 -2
- package/assets/{index-uzc4dT8s.js → index-Bdxb4aHX.js} +1 -1
- package/assets/{index-BYg62rD6.js → index-Bf3vG6Fe.js} +1 -1
- package/assets/{index-BjptEpaJ.js → index-BfvExgG5.js} +1 -1
- package/assets/{index-BVcNzXap.js → index-BgIbq-Hq.js} +1 -1
- package/assets/{index-B1ZF46Ko.js → index-BnIZHILN.js} +1 -1
- package/assets/{index-DqnX5uAR.js → index-Boi-qLQD.js} +1 -1
- package/assets/{index-D5JjqjjU.js → index-C3Er8dJ1.js} +1 -1
- package/assets/{index-CqnsV9lR.js → index-C6CfAI6n.js} +1 -1
- package/assets/{index-CbyAJw4-.js → index-C6cT_ct2.js} +1 -1
- package/assets/{index-o2j-czuk.js → index-CDjI94tN.js} +1 -1
- package/assets/{index-C6uhDE9h.js → index-CKyzt37E.js} +1 -1
- package/assets/{index-B6lLVyUf.js → index-CL60lt4Y.js} +1 -1
- package/assets/{index-Bl9N3aWR.js → index-C_eaXe9o.js} +1 -1
- package/assets/{index-D1gEge8-.js → index-C_yuHoMZ.js} +3 -3
- package/assets/{index-BeUILvqM.js → index-Cc0NJAc9.js} +1 -1
- package/assets/{index-B_NuPdf0.js → index-CpVo1fNd.js} +1 -1
- package/assets/{index-BKA2Kk9C.js → index-CvgWB5Zw.js} +1 -1
- package/assets/{index-DxWP3gak.js → index-Cxhas0sz.js} +1 -1
- package/assets/{index-u8nH4Rw0.js → index-D0Cb0Iaa.js} +1 -1
- package/assets/{index-CENUxZfv.js → index-D3m5eCUA.js} +1 -1
- package/assets/{index-jCrNn234.js → index-D5I71qVH.js} +1 -1
- package/assets/{index-DURh1PEo.js → index-D75CdLXH.js} +1 -1
- package/assets/{index-Bv11rzVa.js → index-D7GX501D.js} +1 -1
- package/assets/{index-DVcL7J_t.js → index-DIh0fc3M.js} +1 -1
- package/assets/{index-CdO-kfoS.js → index-DTn10Mqu.js} +1 -1
- package/assets/{index-a4k6LaYK.js → index-DUxnUV3Q.js} +1 -1
- package/assets/{index-CcsWoBJK.js → index-DdJEyPHb.js} +1 -1
- package/assets/{index-7rWaFD7f.js → index-DfjQtn0w.js} +1 -1
- package/assets/{index-CsVrdKM8.js → index-DlChflCd.js} +1 -1
- package/assets/{index-BWbKKFVK.js → index-DpYJN986.js} +1 -1
- package/assets/{index-B94ghhpu.js → index-DqRstCeb.js} +1 -1
- package/assets/{index-BrR0WZ0Y.js → index-DrdlDB9K.js} +1 -1
- package/assets/{index-Bd4x7TMP.js → index-DwnGNyGp.js} +1 -1
- package/assets/{index-BcZPRgUv.js → index-FCirGBM_.js} +1 -1
- package/assets/{index-zVvLDKBh.js → index-GW5HS0_4.js} +2 -2
- package/assets/{index-DnQG3NAn.js → index-HbVuspel.js} +1 -1
- package/assets/{index-zbujtMDB.js → index-Jse6miq3.js} +1 -1
- package/assets/{index-CcUfpaSP.js → index-NC6HVCA3.js} +1 -1
- package/assets/{index-Df6GKZpc.js → index-SdBSY4Xa.js} +2 -2
- package/assets/{index-B3P6BPci.js → index-Xd6CjE0W.js} +1 -1
- package/assets/{index-u77btqjQ.js → index-hiLdobkA.js} +1 -1
- package/assets/{index-rk-RtPGh.js → index-lz0XRZDG.js} +1 -1
- package/assets/{index-B0--HMVL.js → index-n89hCIEZ.js} +3 -3
- package/assets/{index-CuBAn4iR.js → index-p7adRLap.js} +1 -1
- package/assets/{index-Dv41StGm.js → index-ziz3gIEg.js} +1 -1
- package/assets/{index.es-CYMyZCD-.js → index.es-CuumqYDu.js} +1 -1
- package/assets/{index.es-UvEfkSna.js → index.es-DgD7GO7O.js} +4 -4
- package/assets/{index.es-DJUkBdGr.js → index.es-Yxjlq6zd.js} +1 -1
- package/assets/{localBatchGatewayRequest-C9D88kZr.js → localBatchGatewayRequest-lZjgZyn7.js} +1 -1
- package/assets/{mana-rate-Dx_lqKWQ.js → mana-rate-QdrODjyw.js} +1 -1
- package/assets/network-1fuqo2Qx.js +1 -0
- package/assets/{networks-KbQXXD7P.js → networks-3ZlmARgU.js} +1 -1
- package/assets/{onramp-iekcmGjJ.js → onramp-CTQLPprN.js} +1 -1
- package/assets/{openzeppelin-41206uN_.js → openzeppelin-aA2XluPa.js} +1 -1
- package/assets/{ownerOf-DH7SAQYs.js → ownerOf-DkHcPVzZ.js} +1 -1
- package/assets/{parseNft-Dy8OsAtf.js → parseNft-1qDp6y0-.js} +2 -2
- package/assets/{parseSignature-D9IuPuaA.js → parseSignature-BGBWeXum.js} +3 -3
- package/assets/{parseSignature-BiaWpR8i.js → parseSignature-CGnToxPQ.js} +1 -1
- package/assets/{pay-with-exchange-D0U4VJXZ.js → pay-with-exchange-B7LngNAX.js} +1 -1
- package/assets/{qr-overlay-35KmnL99.js → qr-overlay-DTaOArkb.js} +1 -1
- package/assets/{receive-D80uh9Rj.js → receive-DOYHae0f.js} +1 -1
- package/assets/{resolveImplementation-BuxyNBBw.js → resolveImplementation-DqZ4QayG.js} +1 -1
- package/assets/{rpc-CV4XQPwJ.js → rpc-PX93Gy4c.js} +1 -1
- package/assets/{secp256k1-Bz9G1VTq.js → secp256k1-BEY4JDTO.js} +1 -1
- package/assets/{secp256k1-CZj9lLpY.js → secp256k1-BW8JXBhM.js} +1 -1
- package/assets/{secp256k1-lf00rTSa.js → secp256k1-rPNwuesf.js} +1 -1
- package/assets/{send-CZjs1yZc.js → send-BQOZBDwD.js} +1 -1
- package/assets/{send-batch-transaction-uDBYU3an.js → send-batch-transaction-CqSg2Fsc.js} +1 -1
- package/assets/{send-eip712-transaction-DR18L-sh.js → send-eip712-transaction-DPHYWEKh.js} +2 -2
- package/assets/{send-gasless-transaction-BfuwoIYy.js → send-gasless-transaction-BMxvk2-L.js} +2 -2
- package/assets/{sendRawTransaction-BUgSPkVd.js → sendRawTransaction-CPTOQCrL.js} +3 -3
- package/assets/{serializeTransaction-Dmi33xSK.js → serializeTransaction-DpXh7QNx.js} +1 -1
- package/assets/{session-proposal-BOa4yxBl.js → session-proposal-CB_nntHx.js} +1 -1
- package/assets/{session-request-Bcaq75nd.js → session-request-1Y9YBkAc.js} +2 -2
- package/assets/{sha256-zMI7s0-F.js → sha256-BSyGWehj.js} +1 -1
- package/assets/{signing-Cvv8O8BI.js → signing-Zpl24xvH.js} +4 -4
- package/assets/{socials-C_Nw_-aT.js → socials-_z4unm1u.js} +1 -1
- package/assets/{swaps-DrEprVp5.js → swaps-DobKGzZy.js} +1 -1
- package/assets/{thirdweb-D3908hZR.js → thirdweb-WLE4LuQS.js} +3 -3
- package/assets/{totalSupply-CpI009r1.js → totalSupply-C5R5E4Nq.js} +1 -1
- package/assets/{transactionReceipt-CRiBJ28i.js → transactionReceipt-D4dGpNKK.js} +1 -1
- package/assets/{transactions-63jnvtFL.js → transactions-Cpe4fIjT.js} +1 -1
- package/assets/{useInfiniteGrid-xOdKaR3H.js → useInfiniteGrid-C4q3z-wd.js} +1 -1
- package/assets/{verifyHash-BR9R1RG0.js → verifyHash-CXrcritX.js} +1 -1
- package/assets/{w3m-modal-BlMrqGaw.js → w3m-modal-DkZNhAOr.js} +1 -1
- package/assets/{w3m-modal-lZE_ZuOa.js → w3m-modal-qj1yY37G.js} +1 -1
- package/assets/{wait-for-tx-receipt-Do82Sucy.js → wait-for-tx-receipt-_gfrkNCA.js} +1 -1
- package/assets/{wallet-kind-WAQetlRX.js → wallet-kind-BV7xRUpG.js} +1 -1
- package/assets/{wallets-CoP2jTeJ.js → wallets-ro2sSjkA.js} +6 -6
- package/assets/{web-connector-uOzuTTW_.js → web-connector-BB6hw3e8.js} +3 -3
- package/assets/{writeContract-D-hfmcKA.js → writeContract-ClphDpww.js} +1 -1
- package/assets/{zoraTestnet-BMgpy9AE.js → zoraTestnet-BZuF7DWO.js} +1 -1
- package/index.html +8 -8
- package/package.json +2 -2
- package/assets/decimals-D1rmvFNT.js +0 -1
- package/assets/network-CCTP_tzM.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,j as e,b as J}from"./react-4iaCnQ6n.js";import{m as L,l as W,A as Y,B as z}from"./index-
|
|
1
|
+
import{r as t,j as e,b as J}from"./react-4iaCnQ6n.js";import{m as L,l as W,A as Y,B as z}from"./index-5JkWHUrM.js";import{S as E}from"./SkeletonCards-D9qg3FUs.js";import{L as Q}from"./LoadMore-Cae84rui.js";import{u as V}from"./useInfiniteGrid-C4q3z-wd.js";import"./ethers-CU3Ctw5k.js";const X=[{key:"all",label:"Shop All"},{key:"wearable",label:"Wearables",expandable:!0,subs:[{key:"Head",label:"Head",icon:"cat-head"},{key:"Upper Body",label:"Upper Body",icon:"cat-upper"},{key:"Handwear",label:"Handwear",icon:"cat-handwear"},{key:"Lower Body",label:"Lower Body",icon:"cat-lower"},{key:"Feet",label:"Feet",icon:"cat-feet"},{key:"Accessories",label:"Accessories",icon:"cat-accessories"},{key:"Skins",label:"Skins",icon:"cat-skins"}]},{key:"emote",label:"Emotes",expandable:!0,subs:[{key:"Dance",label:"Dance",icon:"emote-dance"},{key:"Stunt",label:"Stunt",icon:"emote-stunt"},{key:"Greetings",label:"Greetings",icon:"emote-greetings"},{key:"Fun",label:"Fun",icon:"emote-fun"},{key:"Poses",label:"Poses",icon:"emote-poses"},{key:"Reactions",label:"Reactions",icon:"emote-reactions"},{key:"Horror",label:"Horror",icon:"emote-horror"},{key:"Miscellaneous",label:"Miscellaneous",icon:"emote-misc"}]}];function ee({category:x,subCategory:l,onCategory:o,onSub:k}){const[u,p]=t.useState(()=>x==="wearable"?"wearable":null);function r(a){a.subs?p(n=>{const d=n!==a.key;return d&&o(a.key),d?a.key:null}):(o(a.key),p(null))}return e.jsx("div",{className:"catfilter",children:X.map(a=>{const n=u===a.key&&!!a.subs,d=a.key===x;return e.jsxs("div",{className:"catfilter__group",children:[e.jsxs("button",{type:"button",className:`catfilter__cat${n?" is-expanded":""}${d?" is-selected":""}`,onClick:()=>r(a),children:[e.jsx("span",{className:"catfilter__cat-label",children:a.label}),a.expandable?e.jsx("span",{className:`ico ico-chevron catfilter__chev${n?" is-up":""}`,"aria-hidden":!0}):null]}),a.subs?e.jsx("div",{className:`catfilter__subs${n?" is-open":""}`,children:e.jsx("div",{className:"catfilter__subs-inner",children:a.subs.map(i=>e.jsx("button",{type:"button",className:`catfilter__sub${l===i.key?" is-active":""}`,onClick:()=>k(l===i.key?null:i.key),children:e.jsxs("span",{className:"catfilter__sub-left",children:[e.jsx("span",{className:`ico ico-${i.icon} catfilter__sub-ico`,"aria-hidden":!0}),e.jsx("span",{className:"catfilter__sub-label",children:i.label})]})},i.key))})}):null]},a.key)})})}const se=48,ae={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"],Dance:["dance"],Stunt:["stunt"],Greetings:["greetings"],Fun:["fun"],Poses:["poses"],Reactions:["reactions"],Horror:["horror"],Miscellaneous:["miscellaneous"]},re=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],y=[{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 ue(){const[x]=J(),l=(x.get("q")??"").trim().toLowerCase(),[o,k]=t.useState("wearable"),[u,p]=t.useState(null),[r,a]=t.useState([]),[n,d]=t.useState(""),[i,C]=t.useState(""),[b,F]=t.useState("newest"),[c,N]=t.useState(null),h=n&&!Number.isNaN(Number(n))?Number(n):void 0,_=i&&!Number.isNaN(Number(i))?Number(i):void 0,H=u?ae[u]:void 0,B=(y.find(s=>s.key===b)??y[0]).server,$={category:o,rarities:r.length?r:void 0,wearableCategories:H,minPriceCredits:h,maxPriceCredits:_,search:l||void 0,sortBy:B},{items:P,total:v,isLoading:m,error:A,hasNextPage:G,isFetchingNextPage:R,fetchNextPage:I}=V(["listings",$],s=>z({...$,first:se,skip:s})),g=v,M=t.useRef(null);t.useEffect(()=>{m||!l||M.current===l||(M.current=l,L("Shop Searched",{query:l,result_count:g}))},[l,m,g]);const j=t.useRef("__init__");t.useEffect(()=>{if(m)return;const s=JSON.stringify({category:o,subCategory:u,rarities:r,min:h,max:_,sort:b});if(j.current==="__init__"||j.current===s){j.current=s;return}j.current=s,L("Shop Applied Filter",{filters:{category:o,sub_category:u,rarities:r,min_price_credits:h??null,max_price_credits:_??null,sort:b},result_count:g})},[o,u,r,h,_,b,m,g]);function O(s){k(s),p(null)}function T(s){a(f=>f.includes(s)?f.filter(Z=>Z!==s):[...f,s])}function U(){k("wearable"),p(null),a([]),d(""),C(""),N(null)}function S(s){N(f=>f===s?null:s)}const q=y.find(s=>s.key===b)??y[0],w=!!(h||_),D=w?`${n||"0"}–${i||"∞"}`:"Price",K=o!=="wearable"||!!u||r.length>0||w;return e.jsxs("div",{className:"browse browse--sidebar",children:[c?e.jsx("div",{className:"filterbar__scrim",onClick:()=>N(null),"aria-hidden":!0}):null,e.jsx("aside",{className:"browse__sidebar",children:e.jsx(ee,{category:o,subCategory:u,onCategory:O,onSub:p})}),e.jsxs("div",{className:"browse__main",children:[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${c==="rarity"?" is-open":""}${r.length?" is-active":""}`,onClick:()=>S("rarity"),children:["Rarity ",r.length?e.jsx("span",{className:"filterbar__badge",children:r.length}):null," ",e.jsx("span",{className:`ico ico-chevron filterbar__chev${c==="rarity"?" is-up":""}`,"aria-hidden":!0})]}),c==="rarity"?e.jsx("div",{className:"filter-pop filter-pop--rarity",children:re.map(s=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:r.includes(s),onChange:()=>T(s)}),e.jsx("span",{children:s})]},s))}):null]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__trigger${c==="price"?" is-open":""}${w?" is-active":""}`,onClick:()=>S("price"),children:[D," ",e.jsx("span",{className:`ico ico-chevron filterbar__chev${c==="price"?" is-up":""}`,"aria-hidden":!0})]}),c==="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","aria-label":"Minimum price",placeholder:"Min",value:n,onChange:s=>d(s.target.value)}),e.jsx("span",{children:"–"}),e.jsx("input",{type:"number",min:"0","aria-label":"Maximum price",placeholder:"Max",value:i,onChange:s=>C(s.target.value)})]}),e.jsxs("p",{className:"filter-pop__hint",children:["Price in ",W.name]})]}):null]}),K?e.jsx("button",{className:"filterbar__clear",onClick:U,children:"Clear all"}):null]}),e.jsxs("div",{className:"filterbar__right",children:[e.jsxs("span",{className:"filterbar__count",children:[m?"…":`${v.toLocaleString()} item${v===1?"":"s"}`,l?` for “${l}”`:""]}),e.jsxs("div",{className:"filterbar__item",children:[e.jsxs("button",{className:`filterbar__sort${c==="sort"?" is-open":""}`,onClick:()=>S("sort"),children:["Sort by: ",q.label," ",e.jsx("span",{className:`ico ico-chevron filterbar__chev${c==="sort"?" is-up":""}`,"aria-hidden":!0})]}),c==="sort"?e.jsx("div",{className:"filter-pop filter-pop--sort",children:y.map(s=>e.jsx("button",{className:`filter-pop__sort${s.key===b?" is-active":""}`,onClick:()=>{F(s.key),N(null)},children:s.label},s.key))}):null]})]})]}),A?e.jsx("p",{className:"error",children:A.message}):null,e.jsx("div",{className:"grid",children:m?e.jsx(E,{count:15}):e.jsxs(e.Fragment,{children:[P.map(s=>e.jsx(Y,{item:s},s.id)),R?e.jsx(E,{count:6}):null]})}),e.jsx(Q,{hasNextPage:G,isFetching:R,onLoadMore:()=>I()}),!m&&P.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null]})]})}export{ue as Assets};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $,r as g,j as e,L as I}from"./react-4iaCnQ6n.js";import{i as _,a as A,c as K,j as O,k as M,t as j,C as H,d as v,l as R,A as V,m as N,n as P,g as D,o as J,q as X,r as Z,s as ee,v as q,w as F,x as se,y as ae,z as te,B as re}from"./index-
|
|
1
|
+
import{a as $,r as g,j as e,L as I}from"./react-4iaCnQ6n.js";import{i as _,a as A,c as K,j as O,k as M,t as j,C as H,d as v,l as R,A as V,m as N,n as P,g as D,o as J,q as X,r as Z,s as ee,v as q,w as F,x as se,y as ae,z as te,B as re}from"./index-5JkWHUrM.js";import{f as z}from"./buy--mkRbwSZ.js";import{g as ce,b as ie,w as ne,G as le}from"./buy-gasless-CRAZ_y0W.js";import"./ethers-CU3Ctw5k.js";import"./index-DqRstCeb.js";function oe(a){const o=a,i=(o.message??"").toLowerCase();return o.code===4001||i.includes("reject")||i.includes("denied")||i.includes("cancel")?"You cancelled the request.":i.includes("insufficient")?`You don't have enough ${R.name} — get more first.`:i.includes("no active listing")||i.includes("your own listing")?o.message:"Couldn't complete checkout — please try again."}function de(a){return te(a.received[0].amount)}function fe(){const a=_(s=>s.items),o=_(s=>s.remove),i=_(s=>s.clear),U=_(s=>s.setFittingOpen),{session:t}=A(),Y=a.some(s=>s.category!=="emote"),{data:y}=K({queryKey:["upsell-listings"],queryFn:()=>re({first:40}),staleTime:6e4}),{data:l}=O(t),b=M(),G=$(),[C,m]=g.useState(null),[w,f]=g.useState(null),[h,k]=g.useState(!1),d=a.reduce((s,u)=>s+u.priceCredits,0),B=new Set(a.map(s=>s.id)),S=((y==null?void 0:y.items)??[]).filter(s=>!B.has(s.id)).slice(0,6);async function L(){if(!t){f("Sign in to check out.");return}f(null),k(!0),N("Shop Started Checkout",{cart_size:a.length,cart_value_credits:d,cart_value_usd:P(d),has_sufficient_credits:((l==null?void 0:l.credits)??0)>=d});const s=a.slice(),u=[];let x="authorize",E=!1;try{m("Preparing your order…");const c=[];for(const r of a){const p=r.tradeId?await D(r.tradeId):await J(r.contractAddress,r.itemId??"");if(!p)throw new Error(`No active listing for ${r.name}.`);if(X(p,t.address))throw new Error(`You can't buy your own listing: ${r.name}.`);const Q=de(p),{credit:T,maxCreditedValue:W}=await Z(t.identity,Q,r.tradeId);u.push(T.id),c.push({trade:p,credits:[T],maxCreditedValue:W})}m("Confirming your purchase…"),x="submit";let n=[];if(ce())try{n=await ie({purchases:c,buyer:t.address,signer:t.signer}),await Promise.all(n.map(r=>ne(r))),E=!0}catch(r){if(!(r instanceof le))throw r;n=await z({purchases:c,buyer:t.address,signer:t.signer})}else n=await z({purchases:c,buyer:t.address,signer:t.signer});i(),m("Purchased! 🎉"),N("Shop Completed Purchase",{...ee(s),payment_type:"credits",no_crypto_step:E,transaction_hash:n[0]??null}),b.invalidateQueries({queryKey:["usd-balance"]}),G("/success",{state:{items:s,txHash:n[0]}})}catch(c){if(q(c)||F(c,{flow:"cart_checkout",step:x,cart_size:a.length}),N(q(c)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:x,error_code:se(c),value_usd:P(d),cart_size:a.length}),u.length){try{await ae(t.identity,u)}catch(n){F(n,{flow:"cart_checkout",step:"release"})}b.invalidateQueries({queryKey:["usd-balance"]})}f(oe(c)),m(null)}finally{k(!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:j("cart.empty.title")}),e.jsx("p",{className:"muted",children:j("cart.empty.body")}),e.jsx(I,{className:"btn btn--purple",to:"/assets",children:j("cart.empty.cta")})]}):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}),s.creator?e.jsx(H,{address:s.creator,className:"cart__creator",linkToProfile:!0}):null]}),e.jsxs("div",{className:"cart__price",children:[e.jsx(v,{className:"ccy-mark"})," ",s.priceCredits]}),e.jsx("button",{className:"cart__remove",onClick:()=>o(s.id),disabled:h,"aria-label":`Remove ${s.name}`,title:"Remove",children:e.jsx("span",{className:"ico ico-trash","aria-hidden":!0})})]},s.id))}),e.jsxs("div",{className:"cart__foot",children:[e.jsxs("div",{className:"cart__total",children:[e.jsxs("div",{className:"cart__total-line",children:["Total ",e.jsxs("strong",{children:[e.jsx(v,{className:"ccy-mark"})," ",d]})]}),t?e.jsxs("div",{className:"muted cart__balance",children:["Your balance: ",e.jsx(v,{className:"ccy-mark"})," ",(l==null?void 0:l.credits)??0]}):null]}),e.jsxs("div",{className:"cart__actions",children:[Y?e.jsx("button",{className:"btn btn--ghost",onClick:()=>U(!0),disabled:h,children:"Try on outfit"}):null,e.jsxs(I,{className:"btn btn--ghost",to:"/credits",children:["Get ",R.name]}),e.jsx("button",{className:"btn btn--purple cart__checkout",onClick:L,disabled:h,children:"Checkout"})]})]}),e.jsxs("div",{className:"cart__utils",children:[e.jsx("button",{className:"link",onClick:i,disabled:h,children:"Clear cart"}),null]}),C?e.jsx("p",{className:"muted",style:{marginTop:12},children:C}):null,w?e.jsx("p",{className:"error",style:{marginTop:12},children:w}):null,S.length>0?e.jsxs("section",{className:"row cart-upsell",children:[e.jsx("div",{className:"row__head",children:e.jsx("h2",{className:"row__title",children:"You might also like"})}),e.jsx("div",{className:"row__track",children:S.map(s=>e.jsx(V,{item:s},s.id))})]}):null]})}export{fe as Cart};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as N,a as U,u as w,_ as z,b as o,c as E,d as n,e as I,s as v,f as D,k as _}from"./generateUtilityClasses-
|
|
1
|
+
import{g as N,a as U,u as w,_ as z,b as o,c as E,d as n,e as I,s as v,f as D,k as _}from"./generateUtilityClasses-0-3IDh_9.js";import{r as F,j as g}from"./react-4iaCnQ6n.js";function K(r){return N("MuiCircularProgress",r)}U("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]);const W=["className","color","disableShrink","size","style","thickness","value","variant"];let l=r=>r,P,b,S,$;const t=44,B=_(P||(P=l`
|
|
2
2
|
0% {
|
|
3
3
|
transform: rotate(0deg);
|
|
4
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as g,a as h,j as e}from"./react-4iaCnQ6n.js";import{C as x,A as j,f as _}from"./index-
|
|
1
|
+
import{u as g,a as h,j as e}from"./react-4iaCnQ6n.js";import{C as x,A as j,f as _}from"./index-5JkWHUrM.js";import{A as N}from"./collection-DdvZ5Upq.js";import{S as m}from"./SkeletonCards-D9qg3FUs.js";import{L as f}from"./LoadMore-Cae84rui.js";import{u as C}from"./useInfiniteGrid-C4q3z-wd.js";import"./ethers-CU3Ctw5k.js";const b=48;function F(){var i;const{contractAddress:o}=g(),d=h(),{items:s,total:t,isLoading:a,error:c,hasNextPage:u,isFetchingNextPage:n,fetchNextPage:p}=C(["collection-page",o],l=>_(o,{first:b,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:u,isFetching:n,onLoadMore:()=>p()}),!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,u as g,a as p}from"./react-4iaCnQ6n.js";import{G as i,C as h,A as x,H as j}from"./index-
|
|
1
|
+
import{j as e,u as g,a as p}from"./react-4iaCnQ6n.js";import{G as i,C as h,A as x,H as j}from"./index-5JkWHUrM.js";import{A as f}from"./collection-DdvZ5Upq.js";import{S as m}from"./SkeletonCards-D9qg3FUs.js";import{L as N}from"./LoadMore-Cae84rui.js";import{u as b}from"./useInfiniteGrid-C4q3z-wd.js";import"./ethers-CU3Ctw5k.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 S(){const{address:s}=g(),r=p(),{items:o,total:a,isLoading:t,error:n,hasNextPage:u,isFetchingNextPage:c,fetchNextPage:d}=b(["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(N,{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{S as Creator,S 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-
|
|
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-C5A3kn4T.js";import{g as T,a as W,f as b,b as _,c as v}from"./index-n89hCIEZ.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-
|
|
2
|
-
import{R as P,h as y,S as O,a as V,k as F,m as _,w as v,x as S,l as u,d as N,K as $,_ as K}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RealCheckout-DUmY2ogs.js","assets/react-4iaCnQ6n.js","assets/index-5JkWHUrM.js","assets/ethers-CU3Ctw5k.js","assets/index-Pws_ODuR.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{R as P,h as y,S as O,a as V,k as F,m as _,w as v,x as S,l as u,d as N,K as $,_ as K}from"./index-5JkWHUrM.js";import{a as Y,r as l,j as e}from"./react-4iaCnQ6n.js";import{C}from"./CircularProgress-ZR4J-Sbl.js";import"./ethers-CU3Ctw5k.js";import"./generateUtilityClasses-0-3IDh_9.js";function R(){return y.shopServerUrl||y.creditsServerUrl}async function z(t,s){const r=await P(`${R()}/credits/checkout`,{method:"POST",identity:s,metadata:{},headers:{"Content-Type":"application/json"},body:JSON.stringify({packId:t})});if(!r.ok)throw new Error(`checkout ${r.status}: ${await r.text()}`);const{orderId:a,clientSecret:n}=await r.json();return{orderId:a,clientSecret:n,mock:!1}}async function L(t,s,r={}){const{intervalMs:a=1500,timeoutMs:n=6e4,signal:i}=r,c=Date.now()+n;for(;;){if(i!=null&&i.aborted)throw new DOMException("Aborted","AbortError");const m=await q(t,s,i);if(m.status!=="processing")return m;if(Date.now()>c)return{status:"failed",error:"Timed out waiting for your credits."};await J(a,i)}}async function q(t,s,r){const a=await P(`${R()}/credits/orders/${t}`,{method:"GET",identity:s,metadata:{},signal:r});if(!a.ok)throw new Error(`order status ${a.status}`);return a.json()}function J(t,s){return new Promise((r,a)=>{const n=setTimeout(r,t);s==null||s.addEventListener("abort",()=>{clearTimeout(n),a(new DOMException("Aborted","AbortError"))})})}const Q=.1,G=[{id:"pack_5",usd:5,credits:f(5)},{id:"pack_10",usd:10,credits:f(10)},{id:"pack_25",usd:25,credits:f(25),bestValue:!0},{id:"pack_50",usd:50,credits:f(50)}];function f(t){return Math.round(t/Q)}function T(t){return G.find(s=>s.id===t)}const x="mock_cs_";function M(){return!y.stripePublishableKey||!y.shopServerUrl}async function W(t,s){const r=T(t);if(!r)throw new Error("Unknown pack");if(M())return H(r);if(!(s!=null&&s.identity))throw new Error("Sign in to get credits.");return z(t,s.identity)}async function X(t,s={}){const{intervalMs:r,timeoutMs:a,signal:n,identity:i}=s;if(t.startsWith(x)||M())return Z(t,s);if(!i)throw new Error("Sign in to get credits.");return L(t,i,{intervalMs:r,timeoutMs:a,signal:n})}function H(t){const s=`${x}${t.id}_${Date.now()}`;return D(400).then(()=>({orderId:s,clientSecret:`${x}${t.id}`,mock:!0}))}async function Z(t,s={}){await D(s.intervalMs??900);const r=t.replace(x,"").replace(/_\d+$/,""),a=T(r),n=(a==null?void 0:a.credits)??0;if(s.address&&a)try{const i=await O(s.address,Math.round(a.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 D(t,s){return new Promise((r,a)=>{setTimeout(r,t)})}const b=y.shopServerUrl?"stripe":"mock",ee=l.lazy(()=>K(()=>import("./RealCheckout-DUmY2ogs.js"),__vite__mapDeps([0,1,2,3,4])));function E(t){const s=t;if((s==null?void 0:s.name)==="AbortError")return"You cancelled the request.";const r=((s==null?void 0:s.message)??"").toLowerCase();return r.includes("sign in")?`Sign in to get ${u.name}.`:r.includes("timed out")?`This is taking longer than usual — your ${u.name} will appear shortly.`:"Couldn't complete your purchase — please try again."}function oe(){const t=Y(),{session:s,signIn:r}=V(),a=F(),[n,i]=l.useState("select"),[c,m]=l.useState(null),[p,k]=l.useState(null),[I,w]=l.useState(null),[A,h]=l.useState(null),j=l.useRef(null);l.useEffect(()=>()=>{var d;return(d=j.current)==null?void 0:d.abort()},[]);const B=l.useCallback(async d=>{if(!s){r();return}h(null),m(d),i("paying"),_("Shop Started Buy Credits",{pack_usd:d.usd,credits:d.credits,provider:b});try{const o=await W(d.id,{address:s.address,identity:s.identity});k(o)}catch(o){v(o,{flow:"get_credits",step:"checkout",provider:b}),_("Shop Buy Credits Failed",{step:"checkout",error_code:S(o),pack_usd:d.usd}),h(E(o)),i("error")}},[s,r]),U=l.useCallback(async()=>{if(!p)return;i("processing");const d=new AbortController;j.current=d;try{const o=await X(p.orderId,{signal:d.signal,address:s==null?void 0:s.address,identity:s==null?void 0:s.identity});o.status==="credited"?(w(o.creditsGranted??(c==null?void 0:c.credits)??0),i("success"),_("Shop Completed Buy Credits",{order_id:p.orderId,pack_usd:(c==null?void 0:c.usd)??null,credits:o.creditsGranted??(c==null?void 0:c.credits)??0,provider:b}),a.invalidateQueries({queryKey:["usd-balance"]})):(_("Shop Buy Credits Failed",{step:"grant",error_code:"grant_failed",pack_usd:(c==null?void 0:c.usd)??null}),h(o.error??`Couldn't add your ${u.name} — please try again.`),i("error"))}catch(o){v(o,{flow:"get_credits",step:"grant",order_id:p.orderId}),_("Shop Buy Credits Failed",{step:"grant",error_code:S(o),pack_usd:(c==null?void 0:c.usd)??null}),h(E(o)),i("error")}},[p,c,s,a]);function g(){var d;(d=j.current)==null||d.abort(),i("select"),m(null),k(null),w(null),h(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(se,{onSelect:B}),n==="paying"&&c&&e.jsx(te,{pack:c,checkout:p,onPaid:U,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:[e.jsx(N,{className:"ccy-mark"})," ",I]})," ",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:A}),e.jsx("div",{className:"getcredits__status-actions",children:e.jsx("button",{className:"btn",onClick:g,children:"Try again"})})]})]})}function se({onSelect:t}){return e.jsx("div",{className:"packs",children:G.map(s=>e.jsxs("button",{type:"button",className:`pack${s.bestValue?" pack--best":""}`,onClick:()=>t(s),"aria-label":`Get ${$(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(N,{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 te({pack:t,checkout:s,onPaid:r,onCancel:a}){return e.jsxs("div",{className:"pay",children:[e.jsxs("div",{className:"pay__summary",children:[e.jsx("button",{className:"link",onClick:a,children:"← Choose a different pack"}),e.jsxs("div",{className:"pay__summary-row",children:[e.jsx("span",{children:"You’ll get"}),e.jsxs("strong",{children:[e.jsx(N,{className:"ccy-mark"})," ",$(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(re,{onPaid:r,amountUsd:t.usd}):e.jsx(l.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(ee,{clientSecret:s.clientSecret,onComplete:r})}):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 re({onPaid:t,amountUsd:s}){const[r,a]=l.useState("4242 4242 4242 4242"),[n,i]=l.useState(!1);function c(){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:r,onChange:m=>a(m.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:c,disabled:n,children:n?"Processing…":`Pay $${s}`})]})}export{oe as GetCredits,oe 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-
|
|
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-BNJ_FqxV.js";import{d as g,r as v}from"./index-n89hCIEZ.js";import{C as c}from"./ConstantsUtil-DOBrEopM.js";import{R as $,O as u}from"./W3MFrameProviderSingleton-C5A3kn4T.js";import{au as y}from"./NetworkUtil-aE1iGnVj.js";const b=g`
|
|
2
2
|
:host {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as E,r as d,j as e,L as M}from"./react-4iaCnQ6n.js";import{m as Q,w as A,l as w,d as v,a as K,k as F,c as P,I as R}from"./index-
|
|
1
|
+
import{a as E,r as d,j as e,L as M}from"./react-4iaCnQ6n.js";import{m as Q,w as A,l as w,d as v,a as K,k as F,c as P,I as R}from"./index-5JkWHUrM.js";import{i as W,f as Y}from"./import-D9g3ITrS.js";import{s as O}from"./wallet-kind-BV7xRUpG.js";import"./ethers-CU3Ctw5k.js";import"./buy--mkRbwSZ.js";import"./index-DqRstCeb.js";import"./mana-rate-QdrODjyw.js";function B({queue:n,session:k,onClose:j,onDone:u}){const N=E(),l=O(k.providerType),[c,f]=d.useState(()=>n.map(()=>"pending")),[y,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;f(o=>o.map((p,h)=>h===i?"active":p));try{await W(n[i].item,n[i].priceCredits,k),Q("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||f(o=>o.map((p,h)=>h===i?"done":p))}catch(o){const p=o,h=p.code===4001||/reject|denied|cancel/i.test(p.message??"");h||A(o,{flow:"import_listing",itemId:n[i].item.itemId??n[i].item.oldTradeId}),a||f(S=>S.map((T,t)=>t===i?h?"skipped":"failed":T))}}a||C("finished")})(),()=>{a=!0}},[]);const m=c.filter(a=>a==="done").length,g=c.findIndex(a=>a==="active"),_=Math.round(c.filter(a=>a!=="pending"&&a!=="active").length/n.length*100);function x(){u(),j()}if(y==="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:m>0?"You're in the Shop! 🎉":"Nothing listed"}),e.jsxs("p",{className:"muted",style:{margin:0},children:[m>0?`${m} ${m===1?"item is":"items are"} now for sale with ${w.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:x,children:"Done"}),m>0?e.jsx("button",{className:"btn btn--purple",onClick:()=>{u(),j(),N("/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:[l?"We take down each old listing and re-list it for credits — confirm each step.":"Moving your items to the Shop."," ",g>=0?`${g+1} of ${n.length}`:""]}),e.jsx("div",{className:"migrate__progress",children:e.jsx("div",{className:"migrate__bar",style:{width:`${_}%`}})}),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:[e.jsx(v,{className:"ccy-mark"})," ",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})," ",l?"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:l?"A couple of quick confirmations pop up per item (take down + re-list). Keep this open.":"This only takes a moment — keep this open."})]})})}const D=[{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 q(){const{session:n,signIn:k,restore:j}=K(),u=F(),N=n==null?void 0:n.address;d.useEffect(()=>{j()},[j]);const{data:l,isLoading:c}=P({queryKey:["importable",N],queryFn:()=>Y(N),enabled:!!N}),[f,y]=d.useState({}),[C,I]=d.useState(new Set),[m,g]=d.useState(null),_=d.useMemo(()=>[...(l==null?void 0:l.creations)??[],...(l==null?void 0:l.owned)??[]],[l]);d.useEffect(()=>{_.length&&y(t=>{const r={...t};for(const s of _)r[s.oldTradeId]==null&&(r[s.oldTradeId]=s.suggestedCredits);return r})},[_]);const x=t=>!C.has(t),a=t=>f[t.oldTradeId]??t.suggestedCredits,i=_.filter(t=>x(t.oldTradeId)),o=i.reduce((t,r)=>t+a(r),0);function p(t,r){const s=r.replace(/[^\d]/g,"");y(b=>({...b,[t]:s===""?0:parseInt(s,10)}))}function h(t){I(r=>{const s=new Set(r);return s.has(t)?s.delete(t):s.add(t),s})}function S(t){return t.map(r=>({item:r,priceCredits:Math.max(1,a(r))}))}function T(){u.invalidateQueries({queryKey:["importable"]}),u.invalidateQueries({queryKey:["listings"]}),u.invalidateQueries({queryKey:["my-assets"]}),u.invalidateQueries({queryKey:["collection-sale-state"]}),R.success("Your Shop is updated.")}return n?!c&&_.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(M,{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 ",w.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(v,{className:"ccy-mark imp__diamond"})," 1 ",w.nameSingular," = $0.10 · prices rounded up"]}),c?e.jsx("div",{className:"imp__list",children:Array.from({length:4}).map((t,r)=>e.jsx("div",{className:"imp-row imp-row--skeleton"},r))}):D.map(t=>{const r=(l==null?void 0:l[t.key])??[];return r.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:r.map(s=>{const b=a(s),L=b!==s.suggestedCredits;return e.jsxs("article",{className:`imp-row${x(s.oldTradeId)?"":" is-off"}`,children:[e.jsx("input",{type:"checkbox",className:"imp-check",checked:x(s.oldTradeId),onChange:()=>h(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(v,{className:"ccy-mark imp-price__diamond"}),e.jsx("input",{className:"imp-price__input",inputMode:"numeric",value:b.toLocaleString(),onChange:$=>p(s.oldTradeId,$.target.value),"aria-label":`Price in ${w.name} for ${s.name}`})]}),e.jsxs("div",{className:"imp-price__sub",children:[e.jsxs("span",{children:["$",(b*.1).toFixed(2)]}),L?e.jsxs("button",{className:"imp-price__reset",onClick:()=>y($=>({...$,[s.oldTradeId]:s.suggestedCredits})),children:["Reset to ",e.jsx(v,{className:"ccy-mark"}),s.suggestedCredits.toLocaleString()]}):null]})]}),e.jsx("div",{className:"imp-action",children:e.jsx("button",{className:"btn btn--sm imp-row__list",disabled:!x(s.oldTradeId),onClick:()=>g(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(v,{className:"ccy-mark imp__diamond"})," ",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:()=>g(S(i)),children:["List all (",i.length,")"]})]})}),m&&n?e.jsx(B,{queue:m,session:n,onClose:()=>g(null),onDone:T}):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{q as ImportListings};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,r as u,u as me,d as he,a as _e,L as fe}from"./react-4iaCnQ6n.js";import{a as H,T as pe,W as xe,D as T,h as Z,i as L,d as S,I as je,u as Y,j as ve,c as q,m as M,U as Ne,V as ye,X as be,Y as Ie,C as ge,Z as D,$ as Ce,g as we,q as Ae,z as ke,r as Ee,s as Se,v as z,w as Te,y as Le,n as $e,x as Fe,l as Pe,f as Re,a0 as Be,o as qe}from"./index-D9XZpwfV.js";import{h as K}from"./buy-DW_YPH6-.js";import{g as Me,a as Ue,w as Ve,G as We}from"./buy-gasless-C0vjtz9e.js";import"./ethers-CU3Ctw5k.js";import"./index-B94ghhpu.js";function Ge({item:i}){const c=H(v=>{var N;return(N=v.session)==null?void 0:N.address}),{data:r}=pe(c),m=c&&r?c:"default",f=i.category==="emote";return e.jsx(xe,{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:T.PreviewType.AVATAR,emote:f?void 0:T.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:f?1.5:void 0,wheelStart:f?100:void 0,dev:Z.chainId===80002,disableFadeEffect:!0},i.id)}function Oe(i){return i==="male"?"♂":i==="female"?"♀":i==="unisex"?"⚥":""}function Ye({title:i,items:c,activeId:r,onSelect:m,onViewAll:f}){const v=u.useRef(null),N=L(a=>a.add),l=L(a=>a.items.map(d=>d.id));if(c.length===0)return null;function g(a){N(a,"carousel"),je.success(`“${a.name}” added to your cart.`)}function s(a){const d=v.current;d&&d.scrollBy({left:a*Math.round(d.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:()=>s(-1),"aria-label":"Scroll left",children:"‹"}),e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>s(1),"aria-label":"Scroll right",children:"›"})]})]})]}),e.jsx("div",{className:"collection-carousel__track",ref:v,children:c.map(a=>{const d=Oe(a.gender),y=a.id===r,C=a.priceCredits>0,h=l.includes(a.id);return e.jsxs("article",{className:`collection-carousel__card${y?" is-active":""}`,onClick:()=>m(a),role:"button",tabIndex:0,"aria-current":y||void 0,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.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,C?e.jsx("button",{className:"collection-carousel__add",disabled:h,"aria-label":h?"In cart":`Add ${a.name} to cart`,title:h?"In cart":"Add to cart",onClick:x=>{x.stopPropagation(),h||g(a)},children:e.jsx("span",{className:`ico ${h?"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:[C?e.jsxs("span",{className:"collection-carousel__price",children:[e.jsx(S,{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}),d?e.jsx("span",{className:"chip chip--icon",children:d}):null]})]})]})]},a.id)})})]})}function De(i){return Object.values(T.Rarity).includes(i)}function ze(i){return i==="male"?"Male":i==="female"?"Female":i==="unisex"?"Unisex":null}function Ke(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 ${Pe.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 ss(){const{contractAddress:i,tokenId:c}=me(),{state:r}=he(),m=_e(),f=L(t=>t.add),v=L(t=>t.items),N=Y(t=>t.toggle),{session:l}=H(),{data:g}=ve(l),[s,a]=u.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:Z.chainId,thumbnail:"",priceCredits:0,gender:null,tokenId:c??void 0,tradeId:r==null?void 0:r.tradeId}),[d,y]=u.useState(!1),[C,h]=u.useState(null),[x,w]=u.useState(null),{data:b=[],isFetched:Q}=q({queryKey:["collection-items",s.contractAddress],enabled:!!s.contractAddress,queryFn:()=>Re(s.contractAddress,{first:20}).then(t=>t.items)}),{data:$,isLoading:X}=q({queryKey:["shop-item",s.contractAddress,c],enabled:!(r!=null&&r.item)&&!!s.contractAddress&&!!c,queryFn:()=>Be(s.contractAddress,c)});u.useEffect(()=>{$&&a(t=>t.tradeId?t:{...$})},[$]),u.useEffect(()=>{if(s.name||b.length===0)return;const t=c&&b.find(n=>n.tokenId===c||n.itemId===c)||b.find(n=>n.contractAddress===s.contractAddress);t&&a(n=>({...t,tradeId:n.tradeId??t.tradeId}))},[b]);const J=u.useMemo(()=>{const t=new Set,n=[];for(const o of b){if(o.id===s.id||s.itemId&&o.itemId===s.itemId||s.tokenId&&o.tokenId===s.tokenId)continue;const E=`${o.contractAddress}-${o.itemId??o.tokenId??o.id}`;t.has(E)||(t.add(E),n.push(o))}return n},[b,s.id,s.itemId,s.tokenId]),{data:ee,isLoading:A}=q({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 qe(s.contractAddress,s.itemId);return(t==null?void 0:t.id)??null}return null}}),j=s.tradeId??ee??void 0,p=!!j,k=u.useMemo(()=>({...s,tradeId:j,id:j??s.id}),[s,j]),F=v.some(t=>t.id===k.id),P=Y(t=>!!t.items[s.id]);u.useEffect(()=>{h(null),w(null)},[s.id]);const U=u.useRef(null);u.useEffect(()=>{!s.name||A||U.current===s.id||(U.current=s.id,M("Shop Viewed Item",{...Ne(s),for_sale:p}),ye(s))},[s.id,s.name,A,p]);function se(t){a(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 te(){!p||F||W||f(k,"item_detail")}async function ae(){var E;if(!p||!j)return;if(!l){w("Sign in to check out.");return}w(null),y(!0);let t,n="authorize",o=!1;try{h(`Buying ${s.name||"item"}…`);const _=await we(j);if(!_)throw new Error("not for sale");if(Ae(_,l.address)){w("You can't buy your own listing."),h(null),y(!1);return}const R=(E=_.received)==null?void 0:E[0],oe=ke(R==null?void 0:R.amount),{credit:G,maxCreditedValue:ue}=await Ee(l.identity,oe,j);t=G.id,n="submit";const B={trade:_,buyer:l.address,signer:l.signer,credits:[G],maxCreditedValue:ue};let I;if(Me())try{I=await Ue(B),await Ve(I),o=!0}catch(O){if(!(O instanceof We))throw O;I=await K(B)}else I=await K(B);t=void 0,M("Shop Completed Purchase",{...Se([k]),payment_type:"credits",no_crypto_step:o,transaction_hash:I??null}),m("/success",{state:{items:[k],txHash:I}})}catch(_){z(_)||Te(_,{flow:"buy",step:n,gasless:o}),t&&Le(l.identity,[t]).catch(()=>{}),M(z(_)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:n,error_code:Fe(_),value_usd:$e(k.priceCredits)}),w(Ke(_)),h(null)}finally{y(!1)}}const ie=De(s.rarity)?s.rarity:T.Rarity.COMMON,[re]=T.Rarity.getGradient(ie),V=ze(s.gender),ce=p&&be({priceCredits:s.priceCredits,compareAtCredits:s.compareAtCredits,saleEndsAt:s.saleEndsAt}),ne="More from this collection",W=Ie(s,l==null?void 0:l.address),le=p?F?"In cart":A?"Checking…":"Add to cart":"Not for sale",de=X||!!s.contractAddress&&!Q;return!s.name&&!de?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 Collectibles for something else."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>m("/assets"),children:"Browse Collectibles"})]}):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%, ${re}33 0%, var(--media) 68%)`},children:e.jsx(Ge,{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${P?" is-on":""}`,onClick:()=>N(s),"aria-pressed":P,"aria-label":P?"Remove from favorites":"Add to favorites",children:e.jsx("span",{className:"ico ico-heart","aria-hidden":!0})})]}),s.creator?e.jsx(ge,{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"}),V?e.jsx("span",{className:"chip",children:V}):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"}),p?ce?e.jsxs("div",{className:"item-detail__price item-detail__price--sale",children:[e.jsxs("span",{className:"item-detail__price",children:[e.jsx(S,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:s.priceCredits})]}),e.jsxs("span",{className:"item-detail__price-was",children:[e.jsx(S,{className:"item-detail__diamond item-detail__diamond--was"}),s.compareAtCredits]}),D(s.compareAtCredits,s.priceCredits)>0?e.jsxs("span",{className:"item-detail__sale-badge",children:["SALE -",D(s.compareAtCredits,s.priceCredits),"%"]}):null,e.jsx(Ce,{endsAt:s.saleEndsAt,className:"item-detail__countdown"})]}):e.jsxs("div",{className:"item-detail__price",children:[e.jsx(S,{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: ",e.jsx(S,{className:"ccy-mark"})," ",(g==null?void 0:g.credits)??0]}):null]}),e.jsx("div",{className:"item-detail__ctas",children:W?e.jsxs("p",{className:"item-detail__own-note muted",children:["This is your item — manage it in ",e.jsx(fe,{to:"/my-assets",children:"My Assets"}),"."]}):e.jsxs(e.Fragment,{children:[p?e.jsx("button",{className:"btn btn--purple item-detail__cta",onClick:ae,disabled:d||A,children:d?"Buying…":"Buy now"}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:te,disabled:!p||F||A||d,children:[e.jsx("span",{className:"ico ico-cart-solid item-detail__addcart-ico","aria-hidden":!0}),le]})]})}),C?e.jsx("p",{className:"muted item-detail__status",children:C}):null,x?e.jsx("p",{className:"error item-detail__status",children:x}):null]})]})]}),e.jsx(Ye,{title:ne,items:J,activeId:s.id,onSelect:se,onViewAll:s.contractAddress?()=>m(`/collection/${s.contractAddress}`):void 0})]})}export{ss as ItemDetail,ss as default};
|
|
1
|
+
import{j as e,r as u,u as me,d as he,a as _e,L as fe}from"./react-4iaCnQ6n.js";import{a as H,T as pe,W as xe,D as T,h as Z,i as L,d as S,I as je,u as Y,j as ve,c as q,m as M,U as Ne,V as ye,X as be,Y as Ie,C as ge,Z as D,$ as Ce,g as we,q as Ae,z as ke,r as Ee,s as Se,v as z,w as Te,y as Le,n as $e,x as Fe,l as Pe,f as Re,a0 as Be,o as qe}from"./index-5JkWHUrM.js";import{h as K}from"./buy--mkRbwSZ.js";import{g as Me,a as Ue,w as Ve,G as We}from"./buy-gasless-CRAZ_y0W.js";import"./ethers-CU3Ctw5k.js";import"./index-DqRstCeb.js";function Ge({item:i}){const c=H(v=>{var N;return(N=v.session)==null?void 0:N.address}),{data:r}=pe(c),m=c&&r?c:"default",f=i.category==="emote";return e.jsx(xe,{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:T.PreviewType.AVATAR,emote:f?void 0:T.PreviewEmote.FASHION,disableBackground:!0,wheelZoom:f?1.5:void 0,wheelStart:f?100:void 0,dev:Z.chainId===80002,disableFadeEffect:!0},i.id)}function Oe(i){return i==="male"?"♂":i==="female"?"♀":i==="unisex"?"⚥":""}function Ye({title:i,items:c,activeId:r,onSelect:m,onViewAll:f}){const v=u.useRef(null),N=L(a=>a.add),l=L(a=>a.items.map(d=>d.id));if(c.length===0)return null;function g(a){N(a,"carousel"),je.success(`“${a.name}” added to your cart.`)}function s(a){const d=v.current;d&&d.scrollBy({left:a*Math.round(d.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:()=>s(-1),"aria-label":"Scroll left",children:"‹"}),e.jsx("button",{className:"collection-carousel__arrow",onClick:()=>s(1),"aria-label":"Scroll right",children:"›"})]})]})]}),e.jsx("div",{className:"collection-carousel__track",ref:v,children:c.map(a=>{const d=Oe(a.gender),y=a.id===r,C=a.priceCredits>0,h=l.includes(a.id);return e.jsxs("article",{className:`collection-carousel__card${y?" is-active":""}`,onClick:()=>m(a),role:"button",tabIndex:0,"aria-current":y||void 0,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.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,C?e.jsx("button",{className:"collection-carousel__add",disabled:h,"aria-label":h?"In cart":`Add ${a.name} to cart`,title:h?"In cart":"Add to cart",onClick:x=>{x.stopPropagation(),h||g(a)},children:e.jsx("span",{className:`ico ${h?"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:[C?e.jsxs("span",{className:"collection-carousel__price",children:[e.jsx(S,{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}),d?e.jsx("span",{className:"chip chip--icon",children:d}):null]})]})]})]},a.id)})})]})}function De(i){return Object.values(T.Rarity).includes(i)}function ze(i){return i==="male"?"Male":i==="female"?"Female":i==="unisex"?"Unisex":null}function Ke(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 ${Pe.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 ss(){const{contractAddress:i,tokenId:c}=me(),{state:r}=he(),m=_e(),f=L(t=>t.add),v=L(t=>t.items),N=Y(t=>t.toggle),{session:l}=H(),{data:g}=ve(l),[s,a]=u.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:Z.chainId,thumbnail:"",priceCredits:0,gender:null,tokenId:c??void 0,tradeId:r==null?void 0:r.tradeId}),[d,y]=u.useState(!1),[C,h]=u.useState(null),[x,w]=u.useState(null),{data:b=[],isFetched:Q}=q({queryKey:["collection-items",s.contractAddress],enabled:!!s.contractAddress,queryFn:()=>Re(s.contractAddress,{first:20}).then(t=>t.items)}),{data:$,isLoading:X}=q({queryKey:["shop-item",s.contractAddress,c],enabled:!(r!=null&&r.item)&&!!s.contractAddress&&!!c,queryFn:()=>Be(s.contractAddress,c)});u.useEffect(()=>{$&&a(t=>t.tradeId?t:{...$})},[$]),u.useEffect(()=>{if(s.name||b.length===0)return;const t=c&&b.find(n=>n.tokenId===c||n.itemId===c)||b.find(n=>n.contractAddress===s.contractAddress);t&&a(n=>({...t,tradeId:n.tradeId??t.tradeId}))},[b]);const J=u.useMemo(()=>{const t=new Set,n=[];for(const o of b){if(o.id===s.id||s.itemId&&o.itemId===s.itemId||s.tokenId&&o.tokenId===s.tokenId)continue;const E=`${o.contractAddress}-${o.itemId??o.tokenId??o.id}`;t.has(E)||(t.add(E),n.push(o))}return n},[b,s.id,s.itemId,s.tokenId]),{data:ee,isLoading:A}=q({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 qe(s.contractAddress,s.itemId);return(t==null?void 0:t.id)??null}return null}}),j=s.tradeId??ee??void 0,p=!!j,k=u.useMemo(()=>({...s,tradeId:j,id:j??s.id}),[s,j]),F=v.some(t=>t.id===k.id),P=Y(t=>!!t.items[s.id]);u.useEffect(()=>{h(null),w(null)},[s.id]);const U=u.useRef(null);u.useEffect(()=>{!s.name||A||U.current===s.id||(U.current=s.id,M("Shop Viewed Item",{...Ne(s),for_sale:p}),ye(s))},[s.id,s.name,A,p]);function se(t){a(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 te(){!p||F||W||f(k,"item_detail")}async function ae(){var E;if(!p||!j)return;if(!l){w("Sign in to check out.");return}w(null),y(!0);let t,n="authorize",o=!1;try{h(`Buying ${s.name||"item"}…`);const _=await we(j);if(!_)throw new Error("not for sale");if(Ae(_,l.address)){w("You can't buy your own listing."),h(null),y(!1);return}const R=(E=_.received)==null?void 0:E[0],oe=ke(R==null?void 0:R.amount),{credit:G,maxCreditedValue:ue}=await Ee(l.identity,oe,j);t=G.id,n="submit";const B={trade:_,buyer:l.address,signer:l.signer,credits:[G],maxCreditedValue:ue};let I;if(Me())try{I=await Ue(B),await Ve(I),o=!0}catch(O){if(!(O instanceof We))throw O;I=await K(B)}else I=await K(B);t=void 0,M("Shop Completed Purchase",{...Se([k]),payment_type:"credits",no_crypto_step:o,transaction_hash:I??null}),m("/success",{state:{items:[k],txHash:I}})}catch(_){z(_)||Te(_,{flow:"buy",step:n,gasless:o}),t&&Le(l.identity,[t]).catch(()=>{}),M(z(_)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:n,error_code:Fe(_),value_usd:$e(k.priceCredits)}),w(Ke(_)),h(null)}finally{y(!1)}}const ie=De(s.rarity)?s.rarity:T.Rarity.COMMON,[re]=T.Rarity.getGradient(ie),V=ze(s.gender),ce=p&&be({priceCredits:s.priceCredits,compareAtCredits:s.compareAtCredits,saleEndsAt:s.saleEndsAt}),ne="More from this collection",W=Ie(s,l==null?void 0:l.address),le=p?F?"In cart":A?"Checking…":"Add to cart":"Not for sale",de=X||!!s.contractAddress&&!Q;return!s.name&&!de?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 Collectibles for something else."}),e.jsx("button",{className:"btn btn--purple",onClick:()=>m("/assets"),children:"Browse Collectibles"})]}):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%, ${re}33 0%, var(--media) 68%)`},children:e.jsx(Ge,{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${P?" is-on":""}`,onClick:()=>N(s),"aria-pressed":P,"aria-label":P?"Remove from favorites":"Add to favorites",children:e.jsx("span",{className:"ico ico-heart","aria-hidden":!0})})]}),s.creator?e.jsx(ge,{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"}),V?e.jsx("span",{className:"chip",children:V}):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"}),p?ce?e.jsxs("div",{className:"item-detail__price item-detail__price--sale",children:[e.jsxs("span",{className:"item-detail__price",children:[e.jsx(S,{className:"item-detail__diamond"}),e.jsx("span",{className:"item-detail__price-value",children:s.priceCredits})]}),e.jsxs("span",{className:"item-detail__price-was",children:[e.jsx(S,{className:"item-detail__diamond item-detail__diamond--was"}),s.compareAtCredits]}),D(s.compareAtCredits,s.priceCredits)>0?e.jsxs("span",{className:"item-detail__sale-badge",children:["SALE -",D(s.compareAtCredits,s.priceCredits),"%"]}):null,e.jsx(Ce,{endsAt:s.saleEndsAt,className:"item-detail__countdown"})]}):e.jsxs("div",{className:"item-detail__price",children:[e.jsx(S,{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: ",e.jsx(S,{className:"ccy-mark"})," ",(g==null?void 0:g.credits)??0]}):null]}),e.jsx("div",{className:"item-detail__ctas",children:W?e.jsxs("p",{className:"item-detail__own-note muted",children:["This is your item — manage it in ",e.jsx(fe,{to:"/my-assets",children:"My Assets"}),"."]}):e.jsxs(e.Fragment,{children:[p?e.jsx("button",{className:"btn btn--purple item-detail__cta",onClick:ae,disabled:d||A,children:d?"Buying…":"Buy now"}):null,e.jsxs("button",{className:"item-detail__addcart",onClick:te,disabled:!p||F||A||d,children:[e.jsx("span",{className:"ico ico-cart-solid item-detail__addcart-ico","aria-hidden":!0}),le]})]})}),C?e.jsx("p",{className:"muted item-detail__status",children:C}):null,x?e.jsx("p",{className:"error item-detail__status",children:x}):null]})]})]}),e.jsx(Ye,{title:ne,items:J,activeId:s.id,onSelect:se,onViewAll:s.contractAddress?()=>m(`/collection/${s.contractAddress}`):void 0})]})}export{ss as ItemDetail,ss as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as te,r as o,j as e,b as ie}from"./react-4iaCnQ6n.js";import{c as ne,h as G,a as le,j as ce,k as V,g as oe,q as de,r as ue,y as I,m as M,x as H,v as Y,d as T,K,l as W,A as me,L as he}from"./index-D9XZpwfV.js";import{r as pe,a as B,m as ye}from"./mana-rate-Dx_lqKWQ.js";import{S as O}from"./SkeletonCards-D9qg3FUs.js";import{L as fe}from"./LoadMore-Cae84rui.js";import{h as Q}from"./buy-DW_YPH6-.js";import{g as _e,a as be,w as ke,G as xe}from"./buy-gasless-C0vjtz9e.js";import{u as ge}from"./useInfiniteGrid-xOdKaR3H.js";import"./ethers-CU3Ctw5k.js";import"./index-B94ghhpu.js";function ve(){return ne({queryKey:["mana-rate",G.chainId],queryFn:()=>pe(G.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function z(r){const u=r,c=(u.message??"").toLowerCase();return u.code===4001||c.includes("reject")||c.includes("denied")||c.includes("cancel")?"You cancelled the request.":c.includes("insufficient")?`Not enough ${W.name} — get more first.`:c.includes("not found")||c.includes("no active listing")||c.includes("404")?"This item was just sold or removed. Refreshing the market…":c.includes("your own listing")?"You can't buy your own listing.":"Couldn't complete checkout — please try again."}function je(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 Ce({listing:r,rate:u,onClose:c,onSold:k}){const{session:i}=le(),{data:n}=ce(i),x=V(),m=te(),[N,_]=o.useState("confirm"),[w,h]=o.useState("Locking today’s price…"),[f,g]=o.useState(null),[s,$]=o.useState(null),p=o.useRef(null),A=Math.ceil(B(r.manaWei,u)/10);o.useEffect(()=>{let b=!1;if(!i){_("error"),g("Sign in to check out.");return}return(async()=>{try{const t=await oe(r.tradeId);if(!t)throw new Error("not found");if(de(t,i.address))throw new Error("You can't buy your own listing.");const l=B(r.manaWei,u);if(!Number.isFinite(l)||l<=0)throw new Error("price unavailable");const{credit:d,maxCreditedValue:R,usdCents:P}=await ue(i.identity,l,r.tradeId);if(b){I(i.identity,[d.id]).catch(()=>{});return}p.current=d.id,$({trade:t,credit:d,maxCreditedValue:R,usdCents:P,credits:Math.ceil(P/10)}),h("")}catch(t){if(b)return;console.error("[market] authorize failed",t),M(Y(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:H(t),value_usd:Math.round(B(r.manaWei,u))/100}),_("error"),g(z(t))}})(),()=>{b=!0,p.current&&i&&(I(i.identity,[p.current]).catch(()=>{}),p.current=null)}},[]);const v=!!s&&((n==null?void 0:n.credits)??0)<s.credits;async function L(){if(!i||!s)return;if(v){I(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,m("/credits");return}_("working"),g(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 be(t),await ke(l),b=!0}catch(d){if(!(d instanceof xe))throw d;l=await Q(t)}else l=await Q(t);p.current=null,M("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:[je(r)],txHash:l}})}catch(t){console.error("[market] buy now failed",t),I(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,M(Y(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:H(t),value_usd:s.usdCents/100}),x.invalidateQueries({queryKey:["usd-balance"]});const l=z(t);g(l),_("error"),/sold or removed/i.test(l)&&k()}}function C(){i&&s&&I(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,c()}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(T,{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(T,{className:"mkt-modal__diamond"}),K(A)]}),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: ",e.jsx(T,{className:"ccy-mark"})," ",(n==null?void 0:n.credits)??0]}):null,v?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",W.name," to buy this."]}):null,w&&N==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:w}):null,f?e.jsx("p",{className:"error mkt-modal__note",children:f}):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?"Buying…":v?`Get ${W.name}`:"Confirm purchase"})]})]})]})}const Ne=48,U=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],we={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"]},Se=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],E=[{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 Be(){const[r]=ie(),u=(r.get("q")??"").trim().toLowerCase(),c=V(),[k,i]=o.useState("wearable"),[n,x]=o.useState(null),[m,N]=o.useState([]),[_,w]=o.useState("newest"),[h,f]=o.useState(null),[g,s]=o.useState(null),$=n?we[n]:void 0,p=(E.find(a=>a.key===_)??E[0]).server,A={category:k,rarities:m.length?m:void 0,wearableCategories:$,search:u||void 0,sortBy:p},{items:v,total:L,isLoading:C,error:j,hasNextPage:b,isFetchingNextPage:t,fetchNextPage:l}=ge(["legacy-listings",A],a=>he({...A,first:Ne,skip:a})),{data:d,isError:R}=ve(),P=a=>d?ye(a.manaWei,d):null;function Z(a){i(a),x(null)}function D(a){N(y=>y.includes(a)?y.filter(q=>q!==a):[...y,a])}function J(){i("wearable"),x(null),N([]),f(null)}function F(a){f(y=>y===a?null:a)}function X(a){const y=v.find(q=>q.tradeId===a.tradeId);y&&s(y)}function ee(){c.invalidateQueries({queryKey:["legacy-listings"]})}const ae=E.find(a=>a.key===_)??E[0],S=U.find(a=>a.key===k)??U[0],re=n?`${S.label} · ${n}`:S.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."})]}),R?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:()=>f(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:()=>F("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:U.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))}),S.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),f(null)},children:["All ",S.label]})}),S.sub.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${n===a?" is-active":""}`,onClick:()=>{x(y=>y===a?null:a),f(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:()=>F("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:Se.map(a=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:m.includes(a),onChange:()=>D(a)}),e.jsx("span",{children:a})]},a))}):null]}),se?e.jsx("button",{className:"filterbar__clear",onClick:J,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:()=>F("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:E.map(a=>e.jsx("button",{className:`filter-pop__sort${a.key===_?" is-active":""}`,onClick:()=>{w(a.key),f(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:[v.map(a=>e.jsx(me,{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&&v.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,g&&d?e.jsx(Ce,{listing:g,rate:d,onClose:()=>s(null),onSold:()=>{s(null),ee()}}):null]})}export{Be as Market,Be as default};
|
|
1
|
+
import{a as te,r as o,j as e,b as ie}from"./react-4iaCnQ6n.js";import{c as ne,h as G,a as le,j as ce,k as V,g as oe,q as de,r as ue,y as I,m as M,x as H,v as Y,d as T,K,l as W,A as me,L as he}from"./index-5JkWHUrM.js";import{r as pe,a as B,m as ye}from"./mana-rate-QdrODjyw.js";import{S as O}from"./SkeletonCards-D9qg3FUs.js";import{L as fe}from"./LoadMore-Cae84rui.js";import{h as Q}from"./buy--mkRbwSZ.js";import{g as _e,a as be,w as ke,G as xe}from"./buy-gasless-CRAZ_y0W.js";import{u as ge}from"./useInfiniteGrid-C4q3z-wd.js";import"./ethers-CU3Ctw5k.js";import"./index-DqRstCeb.js";function ve(){return ne({queryKey:["mana-rate",G.chainId],queryFn:()=>pe(G.chainId),staleTime:6e4,refetchInterval:6e4,retry:1})}function z(r){const u=r,c=(u.message??"").toLowerCase();return u.code===4001||c.includes("reject")||c.includes("denied")||c.includes("cancel")?"You cancelled the request.":c.includes("insufficient")?`Not enough ${W.name} — get more first.`:c.includes("not found")||c.includes("no active listing")||c.includes("404")?"This item was just sold or removed. Refreshing the market…":c.includes("your own listing")?"You can't buy your own listing.":"Couldn't complete checkout — please try again."}function je(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 Ce({listing:r,rate:u,onClose:c,onSold:k}){const{session:i}=le(),{data:n}=ce(i),x=V(),m=te(),[N,_]=o.useState("confirm"),[w,h]=o.useState("Locking today’s price…"),[f,g]=o.useState(null),[s,$]=o.useState(null),p=o.useRef(null),A=Math.ceil(B(r.manaWei,u)/10);o.useEffect(()=>{let b=!1;if(!i){_("error"),g("Sign in to check out.");return}return(async()=>{try{const t=await oe(r.tradeId);if(!t)throw new Error("not found");if(de(t,i.address))throw new Error("You can't buy your own listing.");const l=B(r.manaWei,u);if(!Number.isFinite(l)||l<=0)throw new Error("price unavailable");const{credit:d,maxCreditedValue:R,usdCents:P}=await ue(i.identity,l,r.tradeId);if(b){I(i.identity,[d.id]).catch(()=>{});return}p.current=d.id,$({trade:t,credit:d,maxCreditedValue:R,usdCents:P,credits:Math.ceil(P/10)}),h("")}catch(t){if(b)return;console.error("[market] authorize failed",t),M(Y(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"authorize",error_code:H(t),value_usd:Math.round(B(r.manaWei,u))/100}),_("error"),g(z(t))}})(),()=>{b=!0,p.current&&i&&(I(i.identity,[p.current]).catch(()=>{}),p.current=null)}},[]);const v=!!s&&((n==null?void 0:n.credits)??0)<s.credits;async function L(){if(!i||!s)return;if(v){I(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,m("/credits");return}_("working"),g(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 be(t),await ke(l),b=!0}catch(d){if(!(d instanceof xe))throw d;l=await Q(t)}else l=await Q(t);p.current=null,M("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:[je(r)],txHash:l}})}catch(t){console.error("[market] buy now failed",t),I(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,M(Y(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:H(t),value_usd:s.usdCents/100}),x.invalidateQueries({queryKey:["usd-balance"]});const l=z(t);g(l),_("error"),/sold or removed/i.test(l)&&k()}}function C(){i&&s&&I(i.identity,[s.credit.id]).catch(()=>{}),p.current=null,c()}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(T,{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(T,{className:"mkt-modal__diamond"}),K(A)]}),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: ",e.jsx(T,{className:"ccy-mark"})," ",(n==null?void 0:n.credits)??0]}):null,v?e.jsxs("p",{className:"muted mkt-modal__note",children:["You’ll need a few more ",W.name," to buy this."]}):null,w&&N==="working"?e.jsx("p",{className:"muted mkt-modal__note",children:w}):null,f?e.jsx("p",{className:"error mkt-modal__note",children:f}):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?"Buying…":v?`Get ${W.name}`:"Confirm purchase"})]})]})]})}const Ne=48,U=[{key:"wearable",label:"Wearables",sub:["Head","Upper Body","Handwear","Lower Body","Feet","Accessories","Skins"]},{key:"emote",label:"Emotes",sub:[]}],we={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"]},Se=["common","uncommon","rare","epic","legendary","mythic","unique","exotic"],E=[{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 Be(){const[r]=ie(),u=(r.get("q")??"").trim().toLowerCase(),c=V(),[k,i]=o.useState("wearable"),[n,x]=o.useState(null),[m,N]=o.useState([]),[_,w]=o.useState("newest"),[h,f]=o.useState(null),[g,s]=o.useState(null),$=n?we[n]:void 0,p=(E.find(a=>a.key===_)??E[0]).server,A={category:k,rarities:m.length?m:void 0,wearableCategories:$,search:u||void 0,sortBy:p},{items:v,total:L,isLoading:C,error:j,hasNextPage:b,isFetchingNextPage:t,fetchNextPage:l}=ge(["legacy-listings",A],a=>he({...A,first:Ne,skip:a})),{data:d,isError:R}=ve(),P=a=>d?ye(a.manaWei,d):null;function Z(a){i(a),x(null)}function D(a){N(y=>y.includes(a)?y.filter(q=>q!==a):[...y,a])}function J(){i("wearable"),x(null),N([]),f(null)}function F(a){f(y=>y===a?null:a)}function X(a){const y=v.find(q=>q.tradeId===a.tradeId);y&&s(y)}function ee(){c.invalidateQueries({queryKey:["legacy-listings"]})}const ae=E.find(a=>a.key===_)??E[0],S=U.find(a=>a.key===k)??U[0],re=n?`${S.label} · ${n}`:S.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."})]}),R?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:()=>f(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:()=>F("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:U.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))}),S.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),f(null)},children:["All ",S.label]})}),S.sub.map(a=>e.jsx("li",{children:e.jsx("button",{className:`filter-pop__sub${n===a?" is-active":""}`,onClick:()=>{x(y=>y===a?null:a),f(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:()=>F("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:Se.map(a=>e.jsxs("label",{className:"filter-pop__check",children:[e.jsx("input",{type:"checkbox",checked:m.includes(a),onChange:()=>D(a)}),e.jsx("span",{children:a})]},a))}):null]}),se?e.jsx("button",{className:"filterbar__clear",onClick:J,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:()=>F("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:E.map(a=>e.jsx("button",{className:`filter-pop__sort${a.key===_?" is-active":""}`,onClick:()=>{w(a.key),f(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:[v.map(a=>e.jsx(me,{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&&v.length===0?e.jsx("p",{className:"muted",children:"No items match your filters."}):null,g&&d?e.jsx(Ce,{listing:g,rate:d,onClose:()=>s(null),onSold:()=>{s(null),ee()}}):null]})}export{Be as Market,Be as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as l,h as At,j as T,e as Wt,R as X,i as ve,k as Ht}from"./react-4iaCnQ6n.js";import{b as m,F as ct,d as V,T as Kt,H as Gt,I as qt,x as Xt,A as Yt,_ as B,y as dt,J as Zt,g as se,a as K,u as ae,c as D,e as fe,s as Y,t as H,k as Fe,q as Jt,K as Qt,B as pt}from"./generateUtilityClasses-
|
|
1
|
+
import{r as l,h as At,j as T,e as Wt,R as X,i as ve,k as Ht}from"./react-4iaCnQ6n.js";import{b as m,F as ct,d as V,T as Kt,H as Gt,I as qt,x as Xt,A as Yt,_ as B,y as dt,J as Zt,g as se,a as K,u as ae,c as D,e as fe,s as Y,t as H,k as Fe,q as Jt,K as Qt,B as pt}from"./generateUtilityClasses-0-3IDh_9.js";import{S as We}from"./SvgIcon-BqJFz3VM.js";var Se={};function en(...e){return e.reduce((t,n)=>n==null?t:function(...r){t.apply(this,r),n.apply(this,r)},()=>{})}function tn(e,t=166){let n;function o(...r){const i=()=>{e.apply(this,r)};clearTimeout(n),n=setTimeout(i,t)}return o.clear=()=>{clearTimeout(n)},o}function nn(e,t){return()=>null}function on(e,t){var n,o;return l.isValidElement(e)&&t.indexOf((n=e.type.muiName)!=null?n:(o=e.type)==null||(o=o._payload)==null||(o=o.value)==null?void 0:o.muiName)!==-1}function be(e){return e&&e.ownerDocument||document}function rn(e){return be(e).defaultView||window}function sn(e,t){return()=>null}function xe(e,t){typeof e=="function"?e(t):e&&(e.current=t)}const ie=typeof window<"u"?l.useLayoutEffect:l.useEffect;let He=0;function an(e){const[t,n]=l.useState(e),o=e||t;return l.useEffect(()=>{t==null&&(He+=1,n(`mui-${He}`))},[t]),o}const Ke=At.useId;function ln(e){if(Ke!==void 0){const t=Ke();return e??t}return an(e)}function un(e,t,n,o,r){return null}function cn({controlled:e,default:t,name:n,state:o="value"}){const{current:r}=l.useRef(e!==void 0),[i,s]=l.useState(t),a=r?e:i,u=l.useCallback(d=>{r||s(d)},[]);return[a,u]}function de(e){const t=l.useRef(e);return ie(()=>{t.current=e}),l.useRef((...n)=>(0,t.current)(...n)).current}function J(...e){return l.useMemo(()=>e.every(t=>t==null)?null:t=>{e.forEach(n=>{xe(n,t)})},e)}const Ge={};function dn(e,t){const n=l.useRef(Ge);return n.current===Ge&&(n.current=e(t)),n}const pn=[];function fn(e){l.useEffect(e,pn)}class Ee{constructor(){this.currentId=null,this.clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new Ee}start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}}function ft(){const e=dn(Ee.create).current;return fn(e.disposeEffect),e}let Ce=!0,De=!1;const mn=new Ee,hn={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function vn(e){const{type:t,tagName:n}=e;return!!(n==="INPUT"&&hn[t]&&!e.readOnly||n==="TEXTAREA"&&!e.readOnly||e.isContentEditable)}function gn(e){e.metaKey||e.altKey||e.ctrlKey||(Ce=!0)}function Te(){Ce=!1}function bn(){this.visibilityState==="hidden"&&De&&(Ce=!0)}function xn(e){e.addEventListener("keydown",gn,!0),e.addEventListener("mousedown",Te,!0),e.addEventListener("pointerdown",Te,!0),e.addEventListener("touchstart",Te,!0),e.addEventListener("visibilitychange",bn,!0)}function yn(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch{}return Ce||vn(t)}function mt(){const e=l.useCallback(r=>{r!=null&&xn(r.ownerDocument)},[]),t=l.useRef(!1);function n(){return t.current?(De=!0,mn.start(100,()=>{De=!1}),t.current=!1,!0):!1}function o(r){return yn(r)?(t.current=!0,!0):!1}return{isFocusVisibleRef:t,onFocus:o,onBlur:n,ref:e}}function En(e){const t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}function Cn(e,t){function n(o,r){return T.jsx(We,m({"data-testid":`${t}Icon`,ref:r},o,{children:e}))}return n.muiName=We.muiName,l.memo(l.forwardRef(n))}const Rn={configure:e=>{ct.configure(e)}},In=Object.freeze(Object.defineProperty({__proto__:null,capitalize:V,createChainedFunction:en,createSvgIcon:Cn,debounce:tn,deprecatedPropType:nn,isMuiElement:on,ownerDocument:be,ownerWindow:rn,requirePropFactory:sn,setRef:xe,unstable_ClassNameGenerator:Rn,unstable_useEnhancedEffect:ie,unstable_useId:ln,unsupportedProp:un,useControlled:cn,useEventCallback:de,useForkRef:J,useIsFocusVisible:mt},Symbol.toStringTag,{value:"Module"})),Mn=Wt(In);var qe;function Wo(){return qe||(qe=1,(function(e){"use client";Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.createSvgIcon}});var t=Mn})(Se)),Se}function $n(e){return Object.keys(e).length===0}function Sn(e=null){const t=l.useContext(Kt);return!t||$n(t)?e:t}const Tn=Gt();function ht(e=Tn){return Sn(e)}function vt(e){var t,n,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(n=vt(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function Pn(){for(var e,t,n=0,o="",r=arguments.length;n<r;n++)(e=arguments[n])&&(t=vt(e))&&(o&&(o+=" "),o+=t);return o}const Nn=["className","component"];function kn(e={}){const{themeId:t,defaultTheme:n,defaultClassName:o="MuiBox-root",generateClassName:r}=e,i=qt("div",{shouldForwardProp:a=>a!=="theme"&&a!=="sx"&&a!=="as"})(Xt);return l.forwardRef(function(u,d){const f=ht(n),v=Yt(u),{className:y,component:E="div"}=v,C=B(v,Nn);return T.jsx(i,m({as:E,ref:d,className:Pn(y,r?r(o):o),theme:t&&f[t]||f},C))})}const Dn=["value"],gt=l.createContext();function Ho(e){let{value:t}=e,n=B(e,Dn);return T.jsx(gt.Provider,m({value:t??!0},n))}const Ko=()=>{const e=l.useContext(gt);return e??!1};function Ln(){const e=ht(Zt);return e[dt]||e}const Xe=e=>{let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,(t/100).toFixed(2)};var Pe={exports:{}},I={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-is.production.min.js
|
|
4
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as B,r as m,j as s,L as le}from"./react-4iaCnQ6n.js";import{D as ee,h as G,R as ce,k as W,d as T,l as S,p as se,m as P,I as V,w as H,x as ne,a as oe,c as U,a1 as de,g as me,a2 as ue}from"./index-D9XZpwfV.js";import{f as he}from"./import-dVEuzimB.js";import{b as pe,d as ge,i as be,e as ye,a as xe,c as fe}from"./buy-DW_YPH6-.js";import{s as je}from"./wallet-kind-WAQetlRX.js";import{L as _e}from"./LoadMore-Cae84rui.js";import{u as Ne}from"./useInfiniteGrid-xOdKaR3H.js";import"./ethers-CU3Ctw5k.js";import"./mana-rate-Dx_lqKWQ.js";import"./index-B94ghhpu.js";const D=()=>`${G.builderServerUrl}/v1`;function ae(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 a=await ce(e,{method:"GET",identity:i,metadata:{}});if(!a.ok)throw new Error(`builder-server ${a.status}: ${await a.text()}`);const o=await a.json();return o.data??o}function Ie(e,i){const a=i-e;return a>0?a:0}function ke(e){var i,a,o,l,c;return((a=(i=e.data)==null?void 0:i.wearable)==null?void 0:a.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 Z(e){return`${D()}/storage/contents/${e}`}function $(e,i){if(!e)return"";if(/^https?:\/\//.test(e))return e;const a=i==null?void 0:i[e];return a?Z(a):/^(ba|Qm)/.test(e)?Z(e):""}async function ve(e,i){try{const a=await fetch(`${D()}/items/${e}/${i}/contents`);if(!a.ok)return{};const o=await a.json();return o.data??o}catch{return{}}}async function we(e,i,a){const o=$(e.thumbnail,e.contents)||$("thumbnail.png",e.contents);if(o)return o;if(i&&a){const l=await ve(i,a);return $(e.thumbnail,l)||$("thumbnail.png",l)||$("image.png",l)}return""}async function Se(e,i){const a=`${D()}/${e.toLowerCase()}/collections?is_published=true`,o=await te(a,i);return ae(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 Ce(e,i){const a=`${D()}/collections/${e.id}/items`,o=await te(a,i);return(await Promise.all(ae(o).map(async c=>{const k=c.rarity??"common",_=Number(c.total_supply??0)||0;let u=0;try{u=ee.Rarity.getMaxSupply(k)}catch{u=0}const N=(c.contract_address??e.contractAddress).toLowerCase(),p=c.blockchain_item_id??"";return{id:c.id,collectionId:e.id,collectionName:e.name,contractAddress:N,blockchainItemId:p,name:c.name,category:ke(c),rarity:k,thumbnail:await we(c,N,p),type:c.type??"wearable",isPublished:c.is_published??e.isPublished,isApproved:c.is_approved??e.isApproved,totalSupply:_,maxSupply:u,remainingSupply:Ie(_,u),minters:e.minters}}))).filter(Ae)}function Ae(e){return e.isPublished&&e.isApproved&&e.blockchainItemId!==""&&e.blockchainItemId!=null&&e.remainingSupply>0}async function Pe(e,i){const a=await Se(e,i);return(await Promise.all(a.map(async l=>{try{return await Ce(l,i)}catch{return[]}}))).flat()}const $e=1e3*60*60*24*182;function Le(e){const i=e,a=(i.message??"").toLowerCase();return i.code===4001||a.includes("reject")||a.includes("denied")||a.includes("cancel")?"You cancelled the request.":"Couldn't list your item — please try again."}function Ee({asset:e,session:i,onClose:a}){const o=W(),l=B(),[c,k]=m.useState("10"),[_,u]=m.useState(null),[N,p]=m.useState(null),[g,v]=m.useState(!1),[f,j]=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}v(!0);try{u("Getting your item ready…"),await pe({signer:i.signer,contractAddress:e.contractAddress,chainId:e.chainId}),u("Listing your item…");const I=await ge({signer:i.signer,nft:{contractAddress:e.contractAddress,tokenId:e.tokenId,network:e.network,chainId:e.chainId},usdPrice:d/10,expiresAtMs:Date.now()+$e});u("Publishing…"),await se(I,i.identity),u(null),j(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}),V.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["my-assets",i.address]})}catch(I){H(I,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:ne(I)}),p(Le(I)),u(null)}finally{v(!1)}}function x(){a(),l(`/item/${e.contractAddress}/${e.tokenId}`)}return f!==null?s.jsx("div",{className:"modal-backdrop",onClick:a,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:[s.jsx(T,{className:"ccy-mark"})," ",f]})]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:x,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:a,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 (",S.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:d=>k(d.target.value),disabled:g})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",S.name," (1 ",S.nameSingular," = $0.10)."]}),_?s.jsx("p",{className:"muted",children:_}):null,N?s.jsx("p",{className:"error",children:N}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,disabled:g,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:C,disabled:g,children:g?"Listing…":"Put on sale"})]})]})})}const Me=1e3*60*60*24*182;function qe(e){const i=e,a=(i.message??"").toLowerCase();return i.code===4001||a.includes("reject")||a.includes("denied")||a.includes("cancel")?"You cancelled the request.":"Couldn't publish your item — please try again."}function Fe({item:e,session:i,onClose:a}){const o=W(),l=B(),[c,k]=m.useState("10"),[_,u]=m.useState(null),[N,p]=m.useState(null),[g,v]=m.useState(!1),[f,j]=m.useState(null),[C,x]=m.useState(null),d=G.chainId,I=je(i.providerType);m.useEffect(()=>{let h=!1;return(async()=>{try{const b=await be({contractAddress:e.contractAddress,chainId:d});h||j(b)}catch{h||j(!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}v(!0);try{f||(u("Enabling sales for this collection…"),await ye({signer:i.signer,contractAddress:e.contractAddress,chainId:d}),j(!0)),u("Publishing your item…");const b=await xe({signer:i.signer,item:{contractAddress:e.contractAddress,itemId:e.blockchainItemId,network:ee.Network.MATIC,chainId:d},usdPrice:h/10,uses:e.remainingSupply,expiresAtMs:Date.now()+Me});u("Finishing up…"),await se(b,i.identity),u(null),x(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}),V.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["publishable-items"]}),o.invalidateQueries({queryKey:["collection-sale-state"]})}catch(b){H(b,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:ne(b)}),p(qe(b)),u(null)}finally{v(!1)}}function K(){a(),l(`/item/${e.contractAddress}/${e.blockchainItemId}`)}const E=g?"Listing…":f===!1?"Enable & put on sale":"Put on sale";return C!==null?s.jsx("div",{className:"modal-backdrop",onClick:a,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:[s.jsx(T,{className:"ccy-mark"})," ",C]})," · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:K,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:a,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 (",S.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:h=>k(h.target.value),disabled:g})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",S.name," (1 ",S.nameSingular," = $0.10)."]}),f===!1&&!g?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."]}):f===!0&&!g?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,_?s.jsx("p",{className:"muted",children:_}):null,N?s.jsx("p",{className:"error",children:N}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,disabled:g,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:L,disabled:g||f===null,children:f===null?"Checking…":E})]})]})})}const Te=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:G.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null}}function Ve(){const{session:e,error:i,signIn:a,restore:o}=oe(),l=B(),c=W(),[k,_]=m.useState(null),[u,N]=m.useState(null),[p,g]=m.useState(null),[v,f]=m.useState(null);function j(n){const t=n.tokenId??n.itemId??"";!n.contractAddress||!t||l(`/item/${n.contractAddress}/${t}`,{state:{item:n}})}async function C(n,t,r){if(e){f(null),g(r);try{const y=await me(n);await fe({trade:y,signer:e.signer}),V.success(`“${t}” 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(),J=M.code===4001||q.includes("reject")||q.includes("denied");J||H(y,{flow:"remove-listing",tradeId:n}),f(J?"You cancelled the request.":"Couldn't remove the listing — please try again.")}finally{g(null)}}}m.useEffect(()=>{o()},[o]);const x=e==null?void 0:e.address,{items:d,isLoading:I,error:L,hasNextPage:K,isFetchingNextPage:E,fetchNextPage:h}=Ne(["my-assets",x],n=>de(x,{first:Te,skip:n}).then(t=>({items:t.assets,total:t.total})),{enabled:!!x}),{data:b}=U({queryKey:["importable",x],queryFn:()=>he(x),enabled:!!x}),R=((b==null?void 0:b.creations.length)??0)+((b==null?void 0:b.owned.length)??0),{data:A,isLoading:ie,isError:re}=U({queryKey:["publishable-items",x],queryFn:()=>Pe(x,e.identity),enabled:!!e,retry:!1}),O=m.useMemo(()=>[...new Set((A??[]).map(n=>n.contractAddress))],[A]),{data:w}=U({queryKey:["collection-sale-state",x,O],enabled:O.length>0,queryFn:async()=>{const n=await Promise.all(O.map(async r=>[r,await ue(r)])),t={};for(const[r,y]of n)for(const[M,q]of Object.entries(y))t[`${r}-${M}`]=q;return t}}),Q=n=>w==null?void 0:w[`${n.contractAddress}-${n.blockchainItemId}`],Y=m.useMemo(()=>(A??[]).filter(n=>{var t;return(t=Q(n))==null?void 0:t.isOnSale}),[A,w]),X=m.useMemo(()=>{var t;const n=new Map;for(const r of A??[]){if((t=w==null?void 0:w[`${r.contractAddress}-${r.blockchainItemId}`])!=null&&t.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,w]);return e?s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),R>0?s.jsxs(le,{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 ",R," item",R===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,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"asset-grid",children:[I?Array.from({length:8}).map((n,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${t}`)):d.map(n=>s.jsxs("article",{className:"asset-card asset-card--link",onClick:()=>j(z(n)),role:"link",tabIndex:0,onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),j(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:[s.jsx(T,{className:"ccy-mark"})," ",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:t=>{t.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:t=>{t.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:n.itemId??n.tokenId??null}),_(n)},children:"Put on sale"})]},n.id)),E?Array.from({length:4}).map((n,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${t}`)):null]}),s.jsx(_e,{hasNextPage:K,isFetching:E,onLoadMore:()=>h()}),!I&&d.length===0?s.jsx("p",{className:"muted",children:"No items in your wardrobe 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 ",S.name," and buyers pay with ",S.name,"."]})]}),ie?s.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((n,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${t}`))}):re?s.jsx("p",{className:"publish-empty",children:"We couldn’t load your collections right now. Please try again in a moment."}):Y.length===0&&X.length===0?s.jsx("p",{className:"publish-empty",children:"You don’t have any items to publish yet."}):s.jsxs(s.Fragment,{children:[Y.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:Y.map(n=>{var t;return s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>j(F(n)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),j(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:[s.jsx(T,{className:"ccy-mark"})," ",((t=Q(n))==null?void 0:t.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=Q(n);y!=null&&y.tradeId&&C(y.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]},`${n.contractAddress}-${n.blockchainItemId}`)})})]}):null,X.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(t=>s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>j(F(t)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),j(F(t)))},children:[s.jsx("div",{className:"publish-card__img",children:t.thumbnail?s.jsx("img",{src:t.thumbnail,alt:t.name}):null}),s.jsx("div",{className:"publish-card__name",title:t.name,children:t.name}),s.jsxs("div",{className:"publish-card__meta",children:[s.jsx("span",{className:"publish-chip publish-chip--rarity",children:t.rarity}),s.jsxs("span",{className:"publish-card__supply",children:[t.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:t.blockchainItemId}),N(t)},children:"Put on sale"})]},`${t.contractAddress}-${t.blockchainItemId}`))})]},n.id))]})]}),k?s.jsx(Ee,{asset:k,session:e,onClose:()=>_(null)}):null,u?s.jsx(Fe,{item:u,session:e,onClose:()=>N(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:()=>a(),children:"Sign in"})}),i?s.jsx("p",{className:"error",children:i}):null]})}export{Ve as MyAssets};
|
|
1
|
+
import{a as B,r as m,j as s,L as le}from"./react-4iaCnQ6n.js";import{D as ee,h as G,R as ce,k as W,d as T,l as S,p as se,m as P,I as V,w as H,x as ne,a as oe,c as U,a1 as de,g as me,a2 as ue}from"./index-5JkWHUrM.js";import{f as he}from"./import-D9g3ITrS.js";import{b as pe,d as ge,i as be,e as ye,a as xe,c as fe}from"./buy--mkRbwSZ.js";import{s as je}from"./wallet-kind-BV7xRUpG.js";import{L as _e}from"./LoadMore-Cae84rui.js";import{u as Ne}from"./useInfiniteGrid-C4q3z-wd.js";import"./ethers-CU3Ctw5k.js";import"./mana-rate-QdrODjyw.js";import"./index-DqRstCeb.js";const D=()=>`${G.builderServerUrl}/v1`;function ae(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 a=await ce(e,{method:"GET",identity:i,metadata:{}});if(!a.ok)throw new Error(`builder-server ${a.status}: ${await a.text()}`);const o=await a.json();return o.data??o}function Ie(e,i){const a=i-e;return a>0?a:0}function ke(e){var i,a,o,l,c;return((a=(i=e.data)==null?void 0:i.wearable)==null?void 0:a.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 Z(e){return`${D()}/storage/contents/${e}`}function $(e,i){if(!e)return"";if(/^https?:\/\//.test(e))return e;const a=i==null?void 0:i[e];return a?Z(a):/^(ba|Qm)/.test(e)?Z(e):""}async function ve(e,i){try{const a=await fetch(`${D()}/items/${e}/${i}/contents`);if(!a.ok)return{};const o=await a.json();return o.data??o}catch{return{}}}async function we(e,i,a){const o=$(e.thumbnail,e.contents)||$("thumbnail.png",e.contents);if(o)return o;if(i&&a){const l=await ve(i,a);return $(e.thumbnail,l)||$("thumbnail.png",l)||$("image.png",l)}return""}async function Se(e,i){const a=`${D()}/${e.toLowerCase()}/collections?is_published=true`,o=await te(a,i);return ae(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 Ce(e,i){const a=`${D()}/collections/${e.id}/items`,o=await te(a,i);return(await Promise.all(ae(o).map(async c=>{const k=c.rarity??"common",_=Number(c.total_supply??0)||0;let u=0;try{u=ee.Rarity.getMaxSupply(k)}catch{u=0}const N=(c.contract_address??e.contractAddress).toLowerCase(),p=c.blockchain_item_id??"";return{id:c.id,collectionId:e.id,collectionName:e.name,contractAddress:N,blockchainItemId:p,name:c.name,category:ke(c),rarity:k,thumbnail:await we(c,N,p),type:c.type??"wearable",isPublished:c.is_published??e.isPublished,isApproved:c.is_approved??e.isApproved,totalSupply:_,maxSupply:u,remainingSupply:Ie(_,u),minters:e.minters}}))).filter(Ae)}function Ae(e){return e.isPublished&&e.isApproved&&e.blockchainItemId!==""&&e.blockchainItemId!=null&&e.remainingSupply>0}async function Pe(e,i){const a=await Se(e,i);return(await Promise.all(a.map(async l=>{try{return await Ce(l,i)}catch{return[]}}))).flat()}const $e=1e3*60*60*24*182;function Le(e){const i=e,a=(i.message??"").toLowerCase();return i.code===4001||a.includes("reject")||a.includes("denied")||a.includes("cancel")?"You cancelled the request.":"Couldn't list your item — please try again."}function Ee({asset:e,session:i,onClose:a}){const o=W(),l=B(),[c,k]=m.useState("10"),[_,u]=m.useState(null),[N,p]=m.useState(null),[g,v]=m.useState(!1),[f,j]=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}v(!0);try{u("Getting your item ready…"),await pe({signer:i.signer,contractAddress:e.contractAddress,chainId:e.chainId}),u("Listing your item…");const I=await ge({signer:i.signer,nft:{contractAddress:e.contractAddress,tokenId:e.tokenId,network:e.network,chainId:e.chainId},usdPrice:d/10,expiresAtMs:Date.now()+$e});u("Publishing…"),await se(I,i.identity),u(null),j(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}),V.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["my-assets",i.address]})}catch(I){H(I,{flow:"list_secondary"}),P("Shop Listing Failed",{listing_type:"secondary",error_code:ne(I)}),p(Le(I)),u(null)}finally{v(!1)}}function x(){a(),l(`/item/${e.contractAddress}/${e.tokenId}`)}return f!==null?s.jsx("div",{className:"modal-backdrop",onClick:a,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:[s.jsx(T,{className:"ccy-mark"})," ",f]})]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:x,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:a,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 (",S.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:d=>k(d.target.value),disabled:g})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",S.name," (1 ",S.nameSingular," = $0.10)."]}),_?s.jsx("p",{className:"muted",children:_}):null,N?s.jsx("p",{className:"error",children:N}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,disabled:g,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:C,disabled:g,children:g?"Listing…":"Put on sale"})]})]})})}const Me=1e3*60*60*24*182;function qe(e){const i=e,a=(i.message??"").toLowerCase();return i.code===4001||a.includes("reject")||a.includes("denied")||a.includes("cancel")?"You cancelled the request.":"Couldn't publish your item — please try again."}function Fe({item:e,session:i,onClose:a}){const o=W(),l=B(),[c,k]=m.useState("10"),[_,u]=m.useState(null),[N,p]=m.useState(null),[g,v]=m.useState(!1),[f,j]=m.useState(null),[C,x]=m.useState(null),d=G.chainId,I=je(i.providerType);m.useEffect(()=>{let h=!1;return(async()=>{try{const b=await be({contractAddress:e.contractAddress,chainId:d});h||j(b)}catch{h||j(!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}v(!0);try{f||(u("Enabling sales for this collection…"),await ye({signer:i.signer,contractAddress:e.contractAddress,chainId:d}),j(!0)),u("Publishing your item…");const b=await xe({signer:i.signer,item:{contractAddress:e.contractAddress,itemId:e.blockchainItemId,network:ee.Network.MATIC,chainId:d},usdPrice:h/10,uses:e.remainingSupply,expiresAtMs:Date.now()+Me});u("Finishing up…"),await se(b,i.identity),u(null),x(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}),V.success(`“${e.name}” is now on sale!`),o.invalidateQueries({queryKey:["publishable-items"]}),o.invalidateQueries({queryKey:["collection-sale-state"]})}catch(b){H(b,{flow:"list_primary"}),P("Shop Listing Failed",{listing_type:"primary",error_code:ne(b)}),p(qe(b)),u(null)}finally{v(!1)}}function K(){a(),l(`/item/${e.contractAddress}/${e.blockchainItemId}`)}const E=g?"Listing…":f===!1?"Enable & put on sale":"Put on sale";return C!==null?s.jsx("div",{className:"modal-backdrop",onClick:a,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:[s.jsx(T,{className:"ccy-mark"})," ",C]})," · ",e.remainingSupply.toLocaleString()," available"]}),s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,children:"Done"}),s.jsx("button",{className:"btn btn--purple",onClick:K,children:"View in Shop"})]})]})}):s.jsx("div",{className:"modal-backdrop",onClick:a,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 (",S.name,")"]}),s.jsx("input",{type:"number",min:"1",step:"1",value:c,onChange:h=>k(h.target.value),disabled:g})]}),s.jsxs("p",{className:"muted small",children:["Priced in whole ",S.name," (1 ",S.nameSingular," = $0.10)."]}),f===!1&&!g?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."]}):f===!0&&!g?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,_?s.jsx("p",{className:"muted",children:_}):null,N?s.jsx("p",{className:"error",children:N}):null,s.jsxs("div",{className:"modal__actions",children:[s.jsx("button",{className:"btn btn--ghost",onClick:a,disabled:g,children:"Cancel"}),s.jsx("button",{className:"btn",onClick:L,disabled:g||f===null,children:f===null?"Checking…":E})]})]})})}const Te=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:G.chainId,thumbnail:e.thumbnail,priceCredits:0,gender:null}}function Ve(){const{session:e,error:i,signIn:a,restore:o}=oe(),l=B(),c=W(),[k,_]=m.useState(null),[u,N]=m.useState(null),[p,g]=m.useState(null),[v,f]=m.useState(null);function j(n){const t=n.tokenId??n.itemId??"";!n.contractAddress||!t||l(`/item/${n.contractAddress}/${t}`,{state:{item:n}})}async function C(n,t,r){if(e){f(null),g(r);try{const y=await me(n);await fe({trade:y,signer:e.signer}),V.success(`“${t}” 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(),J=M.code===4001||q.includes("reject")||q.includes("denied");J||H(y,{flow:"remove-listing",tradeId:n}),f(J?"You cancelled the request.":"Couldn't remove the listing — please try again.")}finally{g(null)}}}m.useEffect(()=>{o()},[o]);const x=e==null?void 0:e.address,{items:d,isLoading:I,error:L,hasNextPage:K,isFetchingNextPage:E,fetchNextPage:h}=Ne(["my-assets",x],n=>de(x,{first:Te,skip:n}).then(t=>({items:t.assets,total:t.total})),{enabled:!!x}),{data:b}=U({queryKey:["importable",x],queryFn:()=>he(x),enabled:!!x}),R=((b==null?void 0:b.creations.length)??0)+((b==null?void 0:b.owned.length)??0),{data:A,isLoading:ie,isError:re}=U({queryKey:["publishable-items",x],queryFn:()=>Pe(x,e.identity),enabled:!!e,retry:!1}),O=m.useMemo(()=>[...new Set((A??[]).map(n=>n.contractAddress))],[A]),{data:w}=U({queryKey:["collection-sale-state",x,O],enabled:O.length>0,queryFn:async()=>{const n=await Promise.all(O.map(async r=>[r,await ue(r)])),t={};for(const[r,y]of n)for(const[M,q]of Object.entries(y))t[`${r}-${M}`]=q;return t}}),Q=n=>w==null?void 0:w[`${n.contractAddress}-${n.blockchainItemId}`],Y=m.useMemo(()=>(A??[]).filter(n=>{var t;return(t=Q(n))==null?void 0:t.isOnSale}),[A,w]),X=m.useMemo(()=>{var t;const n=new Map;for(const r of A??[]){if((t=w==null?void 0:w[`${r.contractAddress}-${r.blockchainItemId}`])!=null&&t.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,w]);return e?s.jsxs("section",{className:"myassets",children:[s.jsx("h1",{children:"My Assets"}),R>0?s.jsxs(le,{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 ",R," item",R===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,v?s.jsx("p",{className:"error",children:v}):null,s.jsxs("div",{className:"asset-grid",children:[I?Array.from({length:8}).map((n,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`sk-${t}`)):d.map(n=>s.jsxs("article",{className:"asset-card asset-card--link",onClick:()=>j(z(n)),role:"link",tabIndex:0,onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),j(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:[s.jsx(T,{className:"ccy-mark"})," ",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:t=>{t.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:t=>{t.stopPropagation(),P("Shop Started Listing",{listing_type:"secondary",item_id:n.itemId??n.tokenId??null}),_(n)},children:"Put on sale"})]},n.id)),E?Array.from({length:4}).map((n,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`msk-${t}`)):null]}),s.jsx(_e,{hasNextPage:K,isFetching:E,onLoadMore:()=>h()}),!I&&d.length===0?s.jsx("p",{className:"muted",children:"No items in your wardrobe 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 ",S.name," and buyers pay with ",S.name,"."]})]}),ie?s.jsx("div",{className:"publish-grid",children:Array.from({length:4}).map((n,t)=>s.jsx("div",{className:"asset-card asset-card--skeleton"},`pub-sk-${t}`))}):re?s.jsx("p",{className:"publish-empty",children:"We couldn’t load your collections right now. Please try again in a moment."}):Y.length===0&&X.length===0?s.jsx("p",{className:"publish-empty",children:"You don’t have any items to publish yet."}):s.jsxs(s.Fragment,{children:[Y.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:Y.map(n=>{var t;return s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>j(F(n)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),j(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:[s.jsx(T,{className:"ccy-mark"})," ",((t=Q(n))==null?void 0:t.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=Q(n);y!=null&&y.tradeId&&C(y.tradeId,n.name,n.id)},children:p===n.id?"Removing…":"Remove listing"})]},`${n.contractAddress}-${n.blockchainItemId}`)})})]}):null,X.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(t=>s.jsxs("article",{className:"publish-card publish-card--link",onClick:()=>j(F(t)),role:"link",tabIndex:0,onKeyDown:r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),j(F(t)))},children:[s.jsx("div",{className:"publish-card__img",children:t.thumbnail?s.jsx("img",{src:t.thumbnail,alt:t.name}):null}),s.jsx("div",{className:"publish-card__name",title:t.name,children:t.name}),s.jsxs("div",{className:"publish-card__meta",children:[s.jsx("span",{className:"publish-chip publish-chip--rarity",children:t.rarity}),s.jsxs("span",{className:"publish-card__supply",children:[t.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:t.blockchainItemId}),N(t)},children:"Put on sale"})]},`${t.contractAddress}-${t.blockchainItemId}`))})]},n.id))]})]}),k?s.jsx(Ee,{asset:k,session:e,onClose:()=>_(null)}):null,u?s.jsx(Fe,{item:u,session:e,onClose:()=>N(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:()=>a(),children:"Sign in"})}),i?s.jsx("p",{className:"error",children:i}):null]})}export{Ve as MyAssets};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,j as s,L as n}from"./react-4iaCnQ6n.js";import{u as c,A as l}from"./index-
|
|
1
|
+
import{r as o,j as s,L as n}from"./react-4iaCnQ6n.js";import{u as c,A as l}from"./index-5JkWHUrM.js";import{L as m}from"./LoadMore-Cae84rui.js";import"./ethers-CU3Ctw5k.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 Collectibles"})]}):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};
|