PageSourceSearch

https://ready.cards/assets/CardDetailPage-Cb6ZUwaz.js

js ready.cards collected 2026-10-04 10:58:19 UTC 13,418 bytes, 1 lines download raw bytes

1import{j as e}from"./vendor-privy-CnC55fSJ.js";import{u as Pe,r as a}from"./vendor-react-DpDIyBxV.js";import{u as Ee,a as D,A as p,b as X,t as Z,n as y,L as Re,B as g,f as J,C as f,g as A,c as M,d as L,e as $,h as U,i as B,s as _,j as Ie,k as Se,I as Te}from"./index-oxE8veLs.js";import{B as K}from"./badge-Bfg2Ww24.js";import{T as De,a as Me,b as Q,c as ee}from"./tabs-I4cQml2w.js";import{S as Le}from"./separator-Dd7hViCJ.js";import{B as se}from"./BuyCardModal-CQ-ER6Uz.js";import{E as $e}from"./ExportNFTModal-LcGym1GT.js";import{T as Ue}from"./TransferToPsaVaultModal-WLtW3yeT.js";import{A as Be}from"./AssetNotFound-BOuCeIGy.js";import{M as _e,R as Fe}from"./RejectOfferModal-amziBEjl.js";import{T as re,a as ae,b as O,c as i,d as te,e as l}from"./table-B8ppSQXr.js";import{al as Ve,am as ze,an as Ge,l as He,n as We,E as k,ao as w,ap as ne,z as ie,y as F}from"./vendor-ui-DMLtCJlt.js";import"./vendor-three-B4MTkI4E.js";import"./vendor-solana-BWGnL6v4.js";const le={BUY_CARD:{color:"bg-green-500/10 text-green-500 border-green-500/20",icon:F,label:"Buy Card"},SELL_CARD:{color:"bg-red-500/10 text-red-500 border-red-500/20",icon:ie,label:"Sell Card"},EXPORT_CARD:{color:"bg-orange-500/10 text-orange-500 border-orange-500/20",icon:ne,label:"Export Card"},GAME:{color:"bg-primary/20 text-primary border-primary/20",icon:w,label:"Gacha Play"},SIGN_UP:{color:"bg-purple-500/10 text-purple-500 border-purple-500/20",icon:w,label:"Sign Up"},DEPOSIT:{color:"bg-green-500/10 text-green-500 border-green-500/20",icon:F,label:"Deposit"},ADMIN_DEPOSIT:{color:"bg-green-500/10 text-green-500 border-green-500/20",icon:F,label:"Admin Deposit"},WITHDRAW:{color:"bg-red-500/10 text-red-500 border-red-500/20",icon:ie,label:"Withdrawal"},REFERRAL:{color:"bg-orange-500/10 text-orange-500 border-orange-500/20",icon:ne,label:"Referral"},REWARD:{color:"bg-primary/20 text-primary border-primary/20",icon:w,label:"Reward"},REFERRAL_REWARD:{color:"bg-purple-500/10 text-purple-500 border-purple-500/20",icon:w,label:"Referral Reward"}};function os({cardId:n="1"}){Pe();const{user:u,refreshProfile:m}=Ee(),[d,j]=a.useState(!1),[C,P]=a.useState(!1),[V,x]=a.useState(!1),[h,z]=a.useState(!1),[E,R]=a.useState(!1),[de,oe]=a.useState(void 0),[ce,me]=a.useState(void 0),[I,xe]=a.useState(!1),[fe,G]=a.useState(!1),ue=()=>{R(!0)},he=()=>{o(),v()},{data:s,isLoading:pe,error:ge,mutate:o}=D(`${p.viewNft}?nftId=${n}`),{data:N,isLoading:je,mutate:S}=D(`${p.nftActivity}?nftId=${n}`),{data:H,error:b,loading:W,request:Ne}=X(),{data:Y,error:q,loading:be,request:ve}=X(),{data:T,isLoading:ye,mutate:v}=D(`${p.myMakeOfferList}?nftId=${n}`),c=T?.docs?.[0];c?.makeOfferStatus;const Oe=async r=>{try{const t={nftId:n,currency:r?.toLocaleUpperCase()};await Ne(p.buyNft,"POST",t),o(),m(),S()}catch{}},ke=async r=>{try{const t={makerOfferId:c?._id,currency:r?.toLocaleUpperCase()};await ve(p.acceptMyMakeOffer,"POST",t),o(),v(),m()}catch{}},we=(r,t)=>{oe(r),me(t),R(!0)},Ae=()=>{v(),o(),y.emit()},Ce=()=>{v(),o(),m(),G(!1),y.emit()};return a.useEffect(()=>{b&&Z(b),H&&y.emit()},[b,H]),a.useEffect(()=>{q&&Z(b),Y&&y.emit()},[q,Y]),pe?e.jsx(Re,{}):ge?e.jsx(Be,{errorMsg:"No NFT matches your request. Verify the NFT ID"}):e.jsx("div",{className:"space-y-6 bg-background p-4 md:p-6 lg:p-8 min-h-auto",children:e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[e.jsx("div",{className:"space-y-6",children:e.jsx(Ye,{cardData:s})}),e.jsxs("div",{className:"space-y-6 call-span-1 lg:col-span-2",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3 items-start",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-gradient",children:s?.description}),e.jsxs("p",{className:"text-muted-foreground",children:[s?.department," • #",s?.grade]})]}),e.jsx("a",{href:`https://x.com/intent/tweet?text=${encodeURIComponent(`Check out this card on @readycards: ${s?.description||""}`)}&url=${encodeURIComponent(window.location.href)}`,target:"_blank",rel:"noopener noreferrer",children:e.jsxs(g,{variant:"outline",size:"sm",className:"bg-[rgba(255,255,255,0.15)]",children:["Share on"," ",e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4 text-sky-400",children:e.jsx("path",{d:"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83"})})]})})]}),e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs(K,{variant:"outline",className:"text-amber-400 border-amber-400/30 bg-amber-400/10",children:[e.jsx(Ve,{size:12,className:"mr-1"}),s?.rarity]})}),e.jsx("div",{className:"flex items-baseline space-x-4 mb-6 mt-6",children:e.jsxs("span",{className:"text-4xl font-bold text-white",children:["$",J(Number(s?.marketPrice??0))]})}),e.jsx("div",{className:"grid gap-4 mb-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsx(f,{className:"p-4 glass",children:e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"p-2 glass-card rounded-lg",children:e.jsx(ze,{size:16})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Grade"}),e.jsx("p",{className:"font-medium",children:s?.grade})]})]})}),e.jsx(f,{className:"p-4 glass",children:e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"p-2 glass-card rounded-lg",children:e.jsx(Ge,{size:16,className:"text-green-400"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Department"}),e.jsx("p",{className:"font-medium text-green-400",children:s?.department})]})]})})]})})]}),u&&s?.nftAction==="BUY"&&s?.ownerDetails&&s.ownerDetails.userId===u?._id&&e.jsxs("div",{className:"flex space-x-2",children:[e.jsx(g,{onClick:()=>{j(!0)},className:"",variant:"outline",children:"Export Card"}),s?.certNumber&&e.jsx(g,{onClick:()=>P(!0),variant:"outline",children:"Transfer to PSA Vault"}),d&&e.jsx($e,{isOpen:d,onClose:()=>j(!1),exportNftData:s,refreshList:()=>{o(),S()}}),C&&e.jsx(Ue,{isOpen:C,onClose:()=>P(!1),nftData:s,refreshList:()=>{o(),S()}})]}),u&&s?.nftAction==="MARKET"&&e.jsxs("div",{className:"flex space-x-2",children:[c?.makeOfferStatus==="APPROVED"||c?.makeOfferStatus==="APPROVEED"?e.jsx(e.Fragment,{children:e.jsx(se,{onBuy:ke,title:`Buy Offer ($${c.price})`,isPending:be,cardName:s?.name,cardImage:A(s?.images?.front?.originalPath),priceUsd:Number(c.price||0),quantity:1})}):e.jsx(se,{onBuy:Oe,title:"Buy Now",isPending:W,cardName:s?.name,cardImage:s?.images?.front?.originalPath,priceUsd:Number(s?.marketPrice||0),quantity:1}),e.jsx(g,{variant:"outline",onClick:ue,disabled:W,className:"ml-2","aria-label":"Open make offer modal",children:"Make an Offer"})]}),e.jsxs(f,{className:"mt-2 p-2 glass",children:[e.jsxs(M,{className:"flex items-center justify-between cursor-pointer mb-3",onClick:()=>xe(!I),role:"button",children:[e.jsx(L,{className:"flex items-center",children:"Offers"}),I?e.jsx(He,{size:20,className:"ml-2 text-muted-foreground"}):e.jsx(We,{size:20,className:"ml-2 text-muted-foreground"})]}),I&&e.jsx($,{children:ye?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading offers..."}):T?.docs.length?e.jsx("div",{className:"space-y-4",children:e.jsxs(re,{children:[e.jsx(ae,{children:e.jsxs(O,{className:"border-border",children:[e.jsx(i,{children:"Offer Price"}),e.jsx(i,{children:"Price"}),e.jsx(i,{children:"Status"}),e.jsx(i,{children:"Action"})]})}),e.jsx(te,{children:T.docs.map(r=>e.jsxs(O,{className:"border-border",children:[e.jsx(l,{className:"text-sm",children:r?.price||"--"}),e.jsx(l,{children:r?.nftId?.marketPrice||"--"}),e.jsx(l,{children:r?.makeOfferStatus||"--"}),e.jsx(l,{children:r?.makeOfferStatus==="PENDING"?e.jsx(g,{variant:"outline",size:"sm",onClick:()=>we(r._id,r.price),"aria-label":`Update offer of $${r.price}`,children:"Update Offer"}):"--"})]},r._id))})]})}):e.jsx("p",{className:"text-sm text-muted-foreground",children:"No offers found."})})]}),e.jsx(_e,{isOpen:E,onClose:()=>{R(!1)},nftId:n,createMakeOffer:he,updateMakeOffer:Ae,offerId:de,initialPrice:ce,cardName:s?.name,cardImage:A(s?.images?.front?.originalPath)}),e.jsx(Fe,{isOpen:fe,onClose:()=>G(!1),offerId:c?._id,onReject:Ce})]})]}),e.jsx("div",{style:{marginTop:"2rem"},children:e.jsxs(De,{defaultValue:"overview",children:[e.jsxs(Me,{className:"bg-background",children:[e.jsx(Q,{value:"overview",className:"cursor-pointer px-3",children:"Overview"}),e.jsx(Q,{value:"history",className:"cursor-pointer px-3",children:"Activity"})]}),e.jsx(ee,{value:"overview",className:"space-y-6",children:e.jsxs(f,{className:"p-6 border",children:[e.jsx(M,{children:e.jsx(L,{children:"Card Details"})}),e.jsxs($,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Asset Address"}),e.jsx("p",{className:"font-medium",children:e.jsxs("a",{href:`${U}/address/${s?.assetAddress||""}${B}`,target:"_blank",className:"flex gap-1 cursor-pointer",children:[s?.assetAddress?_(s.assetAddress):"--"," ",e.jsx(k,{width:16})]})})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Department"}),e.jsx("p",{className:"font-medium",children:s?.department})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Grade"}),e.jsx("p",{className:"font-medium",children:s?.grade})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Authenticated"}),e.jsx("p",{className:"font-medium",children:s?.authenticated?"Yes":"No"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Creator Id"}),e.jsx("p",{className:"font-medium",children:s?.creatorId})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Grade Number"}),e.jsx("p",{className:"font-medium",children:s?.gradeNum})]}),s?.certNumber&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Cert Number"}),e.jsx("p",{className:"font-medium",children:(()=>{const r=Ie(s?.department,s?.certNumber);return r?e.jsxs("a",{href:r,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 hover:underline text-blue-400",children:[s.certNumber,e.jsx(k,{width:14})]}):s.certNumber})()})]})]}),e.jsx(Le,{className:"bg-white/10"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"Description"}),e.jsx("p",{className:"text-sm leading-relaxed",children:s?.description})]})]})]})}),e.jsx(ee,{value:"history",className:"space-y-4",children:e.jsxs(f,{className:"p-6 border",children:[e.jsx(M,{children:e.jsx(L,{children:"Activity"})}),e.jsx($,{children:je?e.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading..."}):N?e.jsx("div",{className:"space-y-4",children:e.jsxs(re,{children:[e.jsx(ae,{children:e.jsxs(O,{className:"border-border",children:[e.jsx(i,{children:"Action"}),e.jsx(i,{children:"Price"}),e.jsx(i,{children:"From"}),e.jsx(i,{children:"Date"}),e.jsx(i,{children:"Transaction Hash"})]})}),e.jsx(te,{children:N&&Array.isArray(N)&&N.map(r=>{const t=le[r.transactionType]||le.GAME;return t?e.jsxs(O,{className:"border-border",children:[e.jsx(l,{className:"text-sm",children:e.jsx(K,{className:`${t.color} font-medium`,children:t.label==="Game"?`${r.gameType||"Unknown"} Game`:t.label})}),e.jsx(l,{children:r.usdValue?`$${J(Number(r.usdValue))}`:"--"}),e.jsx(l,{children:r.formAddress?e.jsxs("a",{href:`${U}/address/${r.formAddress}${B}`,target:"_blank",rel:"noopener noreferrer",className:"hover:underline flex gap-1 items-center",children:[_(r.formAddress),e.jsx(k,{width:14})]}):"--"}),e.jsx(l,{children:r.createdAt?Se(new Date(r.createdAt),"dd MMM yyyy"):"--"}),e.jsx(l,{children:r.transactionHash?e.jsxs("a",{href:`${U}/tx/${r.transactionHash}${B}`,target:"_blank",rel:"noopener noreferrer",className:"hover:underline flex gap-1 items-center",children:[_(r.transactionHash),e.jsx(k,{width:14})]}):"--"})]},r._id):null})})]})}):e.jsx("p",{className:"text-sm text-muted-foreground",children:"No activities to display."})})]})})]})})]})})}const Ye=({cardData:n})=>{const[u,m]=a.useState(!1),[d,j]=a.useState({x:50,y:50,offsetX:0,offsetY:0}),[C,P]=a.useState(!1),V=x=>{const h=x.currentTarget.getBoundingClientRect(),z=(x.clientX-h.left)/h.width*100,E=(x.clientY-h.top)/h.height*100;j({x:z,y:E,offsetX:x.clientX,offsetY:x.clientY})};return e.jsxs(f,{className:"p-6 bg-secondary",children:[e.jsx("div",{className:"aspect-[3/3.5] relative group overflow-hidden rounded-lg",onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),onMouseMove:V,children:e.jsx(Te,{src:A(n?.images?.front?.originalPath),alt:n?.description,className:"w-full object-cover rounded-lg glow pointer-events-none"})}),u&&e.jsx("div",{className:"pointer-events-none absolute rounded-full border-2 border-white/40 shadow-2xl z-8",style:{width:"200px",height:"200px",top:d.offsetY-100,left:d.offsetX-100,backgroundImage:`url(${A(n?.images?.front?.originalPath)})`,backgroundRepeat:"no-repeat",backgroundSize:"300% 300%",backgroundPosition:`${d.x}% ${d.y}%`}})]})};export{os as CardDetailPage};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.