PageSourceSearch

https://claude-code-remote-production.up.railway.app/assets/FullscreenGallery-BPLYUeKn.js

js claude-code-remote-production.up.railway.app collected 2026-10-03 12:11:42 UTC 4,707 bytes, 1 lines download raw bytes

1import{c as b,r as c,j as t,X as F,Q as G,p as N}from"./index-BGOIdAGT.js";const E=b("ZoomIn",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);const C=b("ZoomOut",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);function S({photos:u,initialIndex:j,alt:h,onClose:a}){const[o,d]=c.useState(j),[n,m]=c.useState(!1),[y,p]=c.useState(null),[f,x]=c.useState(null),l=u.length,r=c.useCallback(()=>d(e=>(e+1)%l),[l]),i=c.useCallback(()=>d(e=>(e-1+l)%l),[l]);c.useEffect(()=>{const e=s=>{s.key==="Escape"&&a(),s.key==="ArrowRight"&&r(),s.key==="ArrowLeft"&&i()};return document.addEventListener("keydown",e),document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",e),document.body.style.overflow=""}},[a,r,i]),c.useEffect(()=>m(!1),[o]);const g=e=>{n||(x(null),p(e.targetTouches[0].clientX))},w=e=>{n||x(e.targetTouches[0].clientX)},k=()=>{if(n||!y||!f)return;const e=y-f;Math.abs(e)>=50&&(e>0?r():i()),p(null),x(null)};return t.jsxs("div",{"data-loc":"client/src/components/FullscreenGallery.tsx:59",className:"fixed inset-0 z-[9999] bg-black/95 backdrop-blur-sm flex flex-col animate-in fade-in duration-200",onClick:a,children:[t.jsxs("div",{"data-loc":"client/src/components/FullscreenGallery.tsx:64",className:"flex items-center justify-between px-4 py-3 text-white/80",children:[t.jsxs("span",{"data-loc":"client/src/components/FullscreenGallery.tsx:65",className:"text-sm font-medium",children:[o+1," / ",l]}),t.jsx("span",{"data-loc":"client/src/components/FullscreenGallery.tsx:66",className:"text-sm truncate max-w-[50%] text-center",children:h}),t.jsxs("div",{"data-loc":"client/src/components/FullscreenGallery.tsx:67",className:"flex items-center gap-2",children:[t.jsx("button",{"data-loc":"client/src/components/FullscreenGallery.tsx:68",onClick:e=>{e.stopPropagation(),m(s=>!s)},className:"p-2 rounded-full hover:bg-white/10 transition-colors","aria-label":n?"縮小":"放大",children:n?t.jsx(C,{"data-loc":"client/src/components/FullscreenGallery.tsx:73",className:"w-5 h-5"}):t.jsx(E,{"data-loc":"client/src/components/FullscreenGallery.tsx:73",className:"w-5 h-5"})}),t.jsx("button",{"data-loc":"client/src/components/FullscreenGallery.tsx:75",onClick:a,className:"p-2 rounded-full hover:bg-white/10 transition-colors","aria-label":"關閉",children:t.jsx(F,{"data-loc":"client/src/components/FullscreenGallery.tsx:80",className:"w-5 h-5"})})]})]}),t.jsxs("div",{"data-loc":"client/src/components/FullscreenGallery.tsx:86",className:"flex-1 flex items-center justify-center relative overflow-hidden",onClick:e=>e.stopPropagation(),onTouchStart:g,onTouchMove:w,onTouchEnd:k,children:[t.jsx("img",{"data-loc":"client/src/components/FullscreenGallery.tsx:93",src:u[o],alt:`${h} - ${o+1}/${l}`,className:`max-h-full max-w-full object-contain transition-transform duration-300 select-none ${n?"scale-150 cursor-zoom-out":"cursor-zoom-in"}`,onClick:()=>m(e=>!e),draggable:!1}),l>1&&!n&&t.jsxs(t.Fragment,{children:[t.jsx("button",{"data-loc":"client/src/components/FullscreenGallery.tsx:106",onClick:e=>{e.stopPropagation(),i()},className:"absolute left-2 sm:left-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full bg-white/10 backdrop-blur flex items-center justify-center text-white hover:bg-white/20 transition-colors",children:t.jsx(G,{"data-loc":"client/src/components/FullscreenGallery.tsx:110",className:"w-6 h-6"})}),t.jsx("button",{"data-loc":"client/src/components/FullscreenGallery.tsx:112",onClick:e=>{e.stopPropagation(),r()},className:"absolute right-2 sm:right-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full bg-white/10 backdrop-blur flex items-center justify-center text-white hover:bg-white/20 transition-colors",children:t.jsx(N,{"data-loc":"client/src/components/FullscreenGallery.tsx:116",className:"w-6 h-6"})})]})]}),l>1&&t.jsx("div",{"data-loc":"client/src/components/FullscreenGallery.tsx:124",className:"px-4 py-3 flex justify-center gap-1.5 overflow-x-auto",children:u.map((e,s)=>t.jsx("button",{"data-loc":"client/src/components/FullscreenGallery.tsx:126",onClick:v=>{v.stopPropagation(),d(s)},className:`shrink-0 w-14 h-10 rounded-lg overflow-hidden border-2 transition-all ${s===o?"border-white opacity-100 scale-105":"border-transparent opacity-40 hover:opacity-70"}`,children:t.jsx("img",{"data-loc":"client/src/components/FullscreenGallery.tsx:133",src:e,alt:"",className:"w-full h-full object-cover",loading:"lazy"})},s))})]})}export{S 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.