PageSourceSearch

https://crackwatch.lovable.app/assets/Watchlist-C4XEQyuv.js

js crackwatch.lovable.app collected 2026-10-03 03:27:18 UTC 5,875 bytes, 1 lines download raw bytes

1import{j as e}from"./query-vendor-tvoqzFL6.js";import{L as s}from"./react-vendor-Bs31K2lP.js";import{S as f,B as g,X as b,a4 as j,t as w,q as v}from"./index-2wDYTGbY.js";import{u as y}from"./useWatchlist-B0NEyaq6.js";import{S as N}from"./StatusChip-DroK0MGl.js";import{g as k}from"./coverAlt-K9v6rWJP.js";import{e as x,ab as C,a as D,f as _,p as B,B as S,r as L}from"./ui-vendor-Cc_EYI3V.js";import"./supabase-vendor-GlODc1dO.js";import"./mockData-Dkb6mgfv.js";import"./coverNaming-Cvt0_RnX.js";const m=a=>{if(!a)return"—";try{return _(B(a),"dd MMM yyyy")}catch{return"—"}},W=()=>e.jsx("span",{className:"pointer-events-none absolute inset-0 -translate-x-full group-hover:translate-x-full transition-transform duration-1000 bg-gradient-to-r from-transparent via-white/10 to-transparent skew-x-12"}),A=()=>{const{games:a,count:n,loading:o,isLocal:l,prefs:c,updatePrefs:p}=y();return e.jsxs("div",{className:"min-h-screen flex flex-col bg-background text-foreground",children:[e.jsx(f,{title:"My Crack Watch List — CrackWatch",description:"Your personal CrackWatch list of PC games you are tracking for crack status updates, Denuvo removals and scene release notifications.",noindex:!0}),e.jsx(g,{}),e.jsxs("main",{className:"flex-1 mx-auto w-full max-w-[1280px] px-6 lg:px-10 py-10",children:[e.jsxs("div",{className:"relative overflow-hidden rounded-3xl border border-white/[0.08] bg-white/[0.02] backdrop-blur-xl p-8 md:p-10 mb-8",children:[e.jsx("div",{className:"pointer-events-none absolute -inset-10 bg-[radial-gradient(50%_60%_at_20%_0%,hsl(var(--primary)/0.15),transparent_70%)]"}),e.jsxs("div",{className:"relative flex flex-wrap items-end justify-between gap-6",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/[0.03] px-3 py-1 text-[10px] uppercase tracking-[0.25em] text-white/60 mb-3",children:[e.jsx(x,{className:"h-3 w-3 text-primary"}),"Watchlist"]}),e.jsx("h1",{className:"text-4xl md:text-5xl font-black tracking-tight bg-gradient-to-b from-foreground to-foreground/60 bg-clip-text text-transparent",children:"Your Crack Watch"}),e.jsx("p",{className:"text-sm text-white/55 mt-2",children:o?"Loading entr
1ies…":`${n} game${n===1?"":"s"} you're tracking`})]}),e.jsx(s,{to:"/games",className:"inline-flex items-center gap-2 rounded-xl bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground hover:bg-primary/90 transition-colors",children:"Browse games"})]})]}),l&&e.jsxs("div",{className:"mb-6 flex items-start gap-3 rounded-2xl border border-primary/30 bg-primary/[0.06] p-4",children:[e.jsx(C,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),e.jsxs("p",{className:"text-sm text-white/70",children:["Saved on this device only."," ",e.jsx(s,{to:"/register",className:"text-primary hover:underline font-semibold",children:"Create an account"})," ","to sync across devices."]})]}),o?e.jsx(b,{label:"Loading watchlist"}):a.length===0?e.jsxs("div",{className:"rounded-3xl border border-white/[0.08] bg-white/[0.02] backdrop-blur-xl p-16 text-center",children:[e.jsx(x,{className:"h-10 w-10 mx-auto text-white/20 mb-4"}),e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"Your watchlist is empty"}),e.jsx("p",{className:"text-sm text-white/50 mt-1 mb-6",children:"Add games to get notified when they get cracked."}),e.jsx(s,{to:"/games",className:"inline-flex items-center gap-2 rounded-xl bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground hover:bg-primary/90 transition-colors",children:"Find games to track"})]}):e.jsx("ul",{className:"grid gap-3",children:a.map(t=>{const h=t.status==="cracked";return e.jsx("li",{children:e.jsxs(s,{to:`/game/${t.slug}`,className:"group relative flex gap-4 overflow-hidden rounded-2xl border border-white/[0.08] bg-white/[0.02] backdrop-blur-xl p-3 hover:border-white/20 hover:bg-white/[0.04] transition-all",children:[e.jsx(W,{}),e.jsx("div",{className:"relative h-20 w-36 shrink-0 overflow-hidden rounded-xl border border-white/10",children:e.jsx("img",{src:j(t),onError:r=>w(r,t),alt:k(t),className:"h-full w-full object-cover transition-transform duration-500 group-hover:scale-105",loading:"lazy"})}),e.jsxs("div",{className:"relative flex-1 min-w-0 py-1",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsx("h2",{className:"font-bold text-base truncate text-foreground",children:t.title}),h&&e.jsxs("span",{className:"flex items-center gap-1 text-[10px] font-bold uppercase tracking-widest text-status-cracked shrink-0",children:[e.jsx(D,{className:"h-3 w-3"})," New"]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-0.5 mt-1.5 text-[11px] text-white/45",children:[e.jsx("span",{children:t.drmProtection}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Release: ",m(t.releaseDate)]}),t.crackDate&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Crack: ",m(t.crackDate)]})]})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[e.jsx(N,{status:t.status,releaseDate:t.releaseDate,crackDate:t.crackDate,size:"sm"}),!l&&c[t.id]&&e.jsx("div",{onClick:r=>{r.preventDefault(),r.stopPropagation()},className:"flex flex-wrap gap-1.5",children:[["notify_status_change","Status"],["notify_denuvo_change","Denuvo"],["notify_release","Release"]].map(([r,d])=>{const i=c[t.id][r],u=i?S:L;return e.jsxs("button",{type:"button",onClick:()=>p(t.id,{[r]:!i}),className:`inline-flex items-center gap-1 rounded-full border px-2.5 py-1 text-[10px] font-medium transition-colors ${i?"border-primary/50 text-primary bg-primary/10":"border-white/10 text-white/45 hover:border-white/20 hover:text-white/70"}`,title:`Toggle ${d} notifications`,children:[e.jsx(u,{className:"h-3 w-3"})," ",d]},r)})})]})]})]})},t.id)})})]}),e.jsx(v,{})]})};export{A as default};

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.