PageSourceSearch

https://piratescan.lovable.app/assets/Footer-cthUVKzo.js

js piratescan.lovable.app collected 2026-10-03 03:39:06 UTC 11,083 bytes, 1 lines download raw bytes

1import{q as E,v as A,r as n,u as P,j as e,L as r}from"./index-CjB1gXIA.js";import{L as z,M as B}from"./Logo-DN5i10fY.js";import{u as _,X as I}from"./auth-middleware-BCy-5AVG.js";import{c as x}from"./createLucideIcon-DgmuUWPJ.js";import{C as R,S as N,L as y,M as $,g as H}from"./site-settings.functions-CZBqHkht.js";import{S as F,M as O}from"./settings-u6qwVdKd.js";const D=[["path",{d:"M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",key:"oz39mx"}]],C=x("bookmark",D);const U=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],k=x("circle-user",U);const X=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}]],V=x("compass",X);const W=[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]],Y=x("instagram",W);const q=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],b=x("shield",q);const T=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],w=x("user",T),K=E({method:"POST"}).handler(A("616b4f3897a6ae46a89f426debc768e315d7fb83d2d4853222e7c5839f156a9b")),S=[{to:"/browse",label:"Browse",icon:V},{to:"/schedule",label:"Schedule",icon:R},{to:"/bookmarks",label:"Bookmarks",icon:C}];function te(){const[c,o]=n.useState(!1),[h,t]=n.useState(!1),[u,l]=n.useState(!1),i=n.useRef(null),{user:a,profile:d,isAdmin:g,signOut:j}=P();n.useEffect(()=>{const s=()=>o(window.scrollY>20);return window.addEventListener("scroll",s,{passive:!0}),()=>window.removeEventListener("scroll",s)},[]),n.useEffect(()=>{const s=f=>{i.current&&!i.current.contains(f.target)&&l(!1)};return u&&document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[u]);const L=(d?.display_name||a?.email||"?")[0]?.toUpperCase(),m=d?.avatar_url??null,[v,p]=n.useState(null),M=_(K);return n.useEffect(()=>{let s=!1;return m?/^https?:\/\//i.test(m)?p(m):(M({data:{paths:[m]}}).then(f=>!s&&p(f.urls[m]??null)).catch(()=>!s&&p(null)),()=>{s=!0}):p(null)},[m]),e.jsxs("header",{className:`sticky top-0 z-50 transition-all duration-500 ${c?"glass-strong shadow-card":"bg-transparent"}`,children:[e.jsxs("div",{className:"container mx-auto flex items-center gap-6 px-4 py-3",children:[e.jsx(z,{}),e.jsxs("nav",{className:"hidden lg:flex items-center gap-1 ml-4",children:[S.map(s=>e.jsxs(r,{to:s.to,preload:"intent",className:"flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium text-muted-foreground transition hover:bg-accent/50 hover:text-foreground",activeProps:{className:"bg-accent/60 text-foreground"},children:[e.jsx(s.icon,{className:"size-4"}),s.label]},s.to)),g&&e.jsxs(r,{to:"/admin",preload:"intent",className:"flex items-center gap-2 rounded-full px-4 py-2 text-sm font-medium text-gold transition hover:bg-gold/10",activeProps:{className:"bg-gold/20"},children:[e.jsx(b,{className:"size-4"}),"Admin"]})]}),e.jsxs(r,{to:"/search",preload:"intent",className:"mx-auto hidden max-w-md flex-1 items-center gap-3 rounded-full border border-border/70 bg-background/60 px-5 py-2.5 text-sm text-muted-foreground transition hover:border-primary/60 hover:text-foreground md:flex",children:[e.jsx(N,{className:"size-4 transition group-hover:text-primary"}),e.jsx("span",{children:"Search manga, authors, genres…"}),e.jsx("kbd",{className:"ml-auto rounded bg-muted/70 px-2 py-0.5 text-[10px] border border-border",children:"⌘K"})]}),e.jsxs("div",{className:"ml-auto flex items-center gap-2 md:ml-0",children:[e.jsx(r,{to:"/search",preload:"intent",className:"rounded-full p-2.5 hover:bg-accent/50 md:hidden","aria-label":"Search",children:e.jsx(N,{className:"size-5"})}),a?e.jsxs("div",{className:"relative",ref:i,children:[e.jsx("button",{onClick:()=>l(s=>!s),"aria-label":"Account menu",className:"size-9 rounded-full overflow-hidden ring-2 ring-transparent hover:ring-primary/60 transition flex items-center justify-center bg-gradient-primary text-sm font-bold shadow-glow",children:v?e.jsx("img",{src:v,alt:"",className:"size-full object-cover"}):e.jsx("span",{children:L})}),u&&e.jsxs("div",{className:"absolute right-0 mt-2 w-60 glass-strong rounded-2xl shadow-card border border-border overflow-hidden animate-fade-up",children:[e.jsxs("div",{className:"px-4 py-3 border-b border-border",children:[e.jsx("div",{className:"font-semibold text-sm truncate",children:d?.display_name||a.email}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:a.email})]}),e.jsxs(r,{to:"/profile",preload:"intent",onClick:()=>l(!1),className:"flex items-center gap-3 px-4 py-2.5 text-sm hover:bg-accent/50",children:[e.jsx(k,{className:"size-4"})," Your Profile"]}),e.jsxs(r,{to:"/bookmarks",preload:"intent",onClick:()=>l(!1),className:"flex items-center gap-3 px-4 py-2.5 text-sm hover:bg-accent/50",children:[e.jsx(C,{className:"size-4"})," Bookmarks"]}),g&&e.jsxs(r,{to:"/admin",preload:"intent",onClick:()=>l(!1),className:"flex items-center gap-3 px-4 py-2.5 text-sm text-gold hover:bg-gold/10",children:[e.jsx(F,{className:"size-4"})," Admin Panel"]}),e.jsxs("button",{onClick:()=>{l(!1),j()},className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-destructive hover:bg-destructive/10 border-t border-border",children:[e.jsx(y,{className:"size-4"})," Sign out"]})]})]}):e.jsxs(r,{to:"/login",preload:"intent",className:"hidden items-center gap-2 rounded-full border border-primary/40 bg-gradient-primary px-4 py-2 text-sm font-semibold text-primary-foreground shadow-glow transition hover:scale-[1.02] sm:inline-flex",children:[e.jsx(w,{className:"size-4"})," Sign in"]}),e.jsx("button",{onClick:()=>t(!h),className:"lg:hidden p-2 rounded-lg hover:bg-accent/50","aria-label":"Menu",children:h?e.jsx(I,{className:"size-5"}):e.jsx($,{className:"size-5"})})]})]}),h&&e.jsx("div",{className:"lg:hidden glass-strong border-t border-border animate-fade-up",children:e.jsxs("nav",{className:"container mx-auto px-4 py-4 flex flex-col gap-1",children:[S.map(s=>e.jsxs(r,{to:s.to,preload:"intent",onClick:()=>t(!1),className:"flex items-center gap-3 px-4 py-3 rounded-lg hover:bg-accent/50",children:[e.jsx(s.icon,{className:"size-5"}),s.label]},s.to)),a&&e.jsxs(r,{to:"/profile",preload:"intent",onClick:()=>t(!1),className:"flex items-center gap-3 px-4 py-3 rounded-lg hover:bg-accent/50",children:[e.jsx(k,{className:"size-5"})," Profile"]}),g&&e.jsxs(r,{to:"/admin",preload:"intent",onClick:()=>t(!1),className:"flex items-center gap-3 px-4 py-3 rounded-lg text-gold hover:bg-gold/10",children:[e.jsx(b,{className:"size-5"}),"Admin"]}),a?e.jsxs("button",{onClick:()=>{j(),t(!1)},className:"flex items-center gap-3 px-4 py-3 rounded-lg text-destructive",children:[e.jsx(y,{className:"size-5"})," Sign out"]}):e.jsxs(r,{to:"/login",onClick:()=>t(!1),className:"mt-2 flex items-center gap-3 rounded-full bg-gradient-primary px-4 py-3 font-semibold text-primary-foreground",children:[e.jsx(w,{className:"size-5"})," Sign in"]})]})})]})}function G({className:c=""}
1){return e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:c,"aria-hidden":"true",children:e.jsx("path",{d:"M18.244 2H21l-6.52 7.45L22 22h-6.797l-5.32-6.957L3.8 22H1.04l6.97-7.965L1.5 2h6.93l4.808 6.36L18.244 2zm-1.19 18h1.66L7.04 4H5.27l11.784 16z"})})}function ae(){const c=_(H),[o,h]=n.useState({twitter_url:"https://x.com/piratescan",instagram_url:"https://instagram.com/piratescan",discord_url:"https://discord.gg/piratescan",contact_email:"[email protected]"}),t=o.discord_url?.trim()?o.discord_url:"/contact",u=o.contact_email?.trim()?`mailto:${o.contact_email}`:"/contact";n.useEffect(()=>{c().then(i=>h(a=>({...a,...i}))).catch(()=>{})},[c]);const l=[{url:o.twitter_url,Icon:G,label:"X"},{url:o.instagram_url,Icon:Y,label:"Instagram"},{url:o.discord_url,Icon:O,label:"Discord"}];return e.jsxs("footer",{className:"mt-32 border-t border-border bg-background/60",children:[e.jsxs("div",{className:"container mx-auto px-4 py-16 grid gap-12 md:grid-cols-4",children:[e.jsxs("div",{className:"md:col-span-2 space-y-4",children:[e.jsx(z,{}),e.jsx("p",{className:"text-sm text-muted-foreground max-w-md",children:"PirateScan is a fan-driven reading platform for premium manga & manhwa. Built for explorers who chase stories beyond the horizon."}),e.jsx("div",{className:"flex gap-3",children:l.map(({url:i,Icon:a,label:d})=>e.jsx("a",{href:i||"#",target:"_blank",rel:"noopener noreferrer","aria-label":d,className:"size-10 rounded-full glass flex items-center justify-center hover:border-primary hover:text-primary transition",children:e.jsx(a,{className:"size-4"})},d))})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-display tracking-widest text-sm mb-4 text-gradient-gold",children:"EXPLORE"}),e.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[e.jsx("li",{children:e.jsx(r,{to:"/browse",className:"hover:text-foreground transition",children:"Browse Library"})}),e.jsx("li",{children:e.jsx(r,{to:"/schedule",className:"hover:text-foreground transition",children:"Release Schedule"})}),e.jsx("li",{children:e.jsx(r,{to:"/search",className:"hover:text-foreground transition",children:"Search"})}),e.jsx("li",{children:e.jsx(r,{to:"/bookmarks",className:"hover:text-foreground transition",children:"My Bookmarks"})})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-display tracking-widest text-sm mb-4 text-gradient-gold",children:"CREW"}),e.jsxs("ul",{className:"space-y-2 text-sm text-muted-foreground",children:[e.jsx("li",{children:e.jsx("a",{href:t,target:t.startsWith("http")?"_blank":void 0,rel:t.startsWith("http")?"noopener noreferrer":void 0,className:"hover:text-foreground transition",children:"Discord Community"})}),e.jsx("li",{children:e.jsxs(r,{to:"/dmca",className:"hover:text-foreground transition flex items-center gap-1",children:[e.jsx(b,{className:"size-3"})," DMCA"]})}),e.jsx("li",{children:e.jsx(r,{to:"/privacy",className:"hover:text-foreground transition",children:"Privacy"})}),e.jsx("li",{children:e.jsxs("a",{href:u,className:"hover:text-foreground transition flex items-center gap-1",children:[e.jsx(B,{className:"size-3"})," Contact"]})})]})]})]}),e.jsxs("div",{className:"border-t border-border py-6 text-center text-xs text-muted-foreground space-y-1",children:[e.jsxs("div",{children:["© ",new Date().getFullYear()," PirateScan · Sail responsibly. ⚓"]}),e.jsxs("div",{children:["Powered by"," ",e.jsx("a",{href:"https://toraka.com/",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Toraka"})]})]})]})}export{C as B,V as C,ae as F,te as N,b as S,w as U,K as s};

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.