PageSourceSearch

https://sandtoncentral.co.za/assets/videos-jLujwLSl.js

js sandtoncentral.co.za collected 2026-10-02 13:35:29 UTC 3,883 bytes, 1 lines download raw bytes

1import{u as l,j as e,a as d}from"./vendor-query-BOyy767T.js";import{C as n}from"./ContentPage-DTN_qmjw.js";import{S as c}from"./index-D67uaxje.js";import{S as m}from"./skeleton-CUO9YX_z.js";import{y as u,X as p}from"./vendor-ui-Cxik1JTH.js";function h({videoId:t,title:a,onClose:s}){return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/85 backdrop-blur-sm",onClick:s,"data-testid":"modal-video",children:e.jsxs("div",{className:"relative w-full max-w-4xl mx-4 aspect-video",onClick:i=>i.stopPropagation(),children:[e.jsx("button",{onClick:s,className:"absolute -top-10 right-0 text-white hover:text-[#f07d00] transition-colors","data-testid":"button-close-video",children:e.jsx(p,{className:"w-6 h-6"})}),e.jsx("iframe",{src:`https://www.youtube.com/embed/${t}?autoplay=1`,title:a,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,className:"w-full h-full rounded-md"})]})})}function x({video:t}){const[a,s]=d.useState(!1),i=`https://img.youtube.com/vi/${t.youtubeId}/sddefault.jpg`;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"group relative aspect-video rounded-md overflow-hidden cursor-pointer bg-black",onClick:()=>s(!0),"data-testid":`card-video-${t.id}`,children:[e.jsx("img",{src:i,alt:t.title,className:"w-full h-full object-cover group-hover:opacity-75 transition-opacity duration-300",loading:"lazy",onError:r=>{const o=r.target;o.dataset.fallback||(o.dataset.fallback="1",o.src=`https://img.youtube.com/vi/${t.youtubeId}/hqdefault.jpg`)}}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("div",{className:"w-14 h-14 rounded-full bg-[#f07d00]/90 flex items-center justify-center group-hover:scale-110 transition-transform duration-300 shadow-lg",children:e.jsx(u,{className:"w-6 h-6 text-[#111111] ml-1",fill:"currentColor"})})}),e.jsxs("div",{className:"absolute bottom-0 inset-x-0 bg-gradient-to-t from-black/80 to-transparent p-4",children:[e.jsx("h3",{className:"text-white font-semibold text-sm line-clamp-2","data-testid":`text-video-title-${t.id}`,children:t.title}),t.description&&e.jsx("p",{className:"text-white/70 text-xs mt-1 line-clamp-1",children:t.description})]})]}),a&&e.jsx(h,{videoId:t.youtubeId,title:t.title,onClose:()=>s(!1)})]})}function y(){const{data:t,isLoading:a}=l({queryKey:["/api/videos"]});return e.jsxs(n,{title:"Videos",subtitle:"Media Hub",heroImage:"/assets/images/slides/sandton_central_0017.jpg",description:"Watch videos about Sandton Central - from district highlights and event coverage to development updates and lifestyle stories from the heart of Johannesburg.",path:"/videos",children:[e.jsx(c,{title:"Videos",description:"Watch videos about Sandton Central - from district highlights and event coverage to development updates and lifestyle stories from the heart of Johannesburg.",path:"/videos",image:"/assets/images/slides/sandton_central_0017.jpg"}),e.jsxs("div",{className:"max-w-7xl mx-auto px-4 py-16",children:[e.jsx("p",{className:"text-muted-foreground leading-relaxed text-lg mb-8","data-testid":"text-videos-description",children:"Explore Sandton Central through our collection of videos showcasing the district's landmarks, events, developments, and the vibrant life that makes it Africa's premier business destination."}),a?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6",children:[1,2,3].map(s=>e.jsx(m,{className:"aspect-video rounded-md"},s))}):t&&t.length>0?e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6",children:t.map(s=>e.jsx(x,{video:s},s.id))}):e.jsx("div",{className:"bg-card rounded-md p-8 text-center border border-border",children:e.jsx("p",{className:"text-muted-foreground",children:"No videos available at this time. Please check back soon."})})]})]})}export{y 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.