1import{o,a as l,j as e,L as m,S as d,M as c,b as i,H as x}from"./index-DPvlhSbR.js";import{D as u}from"./deal-card-B5S3PFay.js";import{B as h}from"./breadcrumbs-DTLw04lH.js";import{T as p}from"./tag-CihHQ-LF.js";import"./external-link-7GMNOEEH.js";import"./builders-BQdscFNn.js";import"./operator-profiles-CoCD50mO.js";function f(n){const t=new Map;for(const s of n){const r=t.get(s.citySlug);r?r.deals.push(s):t.set(s.citySlug,{city:s.city,state:s.state,citySlug:s.citySlug,deals:[s]})}return Array.from(t.values()).sort((s,r)=>s.city.localeCompare(r.city))}function S(){const{data:n,isLoading:t}=o(void 0,{query:{queryKey:x()}});l({title:"Golf Simulator Deals & Promotions | Golf Sim Finder",description:"Current deals and promotions at indoor golf simulator venues across the US. Find discounts on bay time, lessons, and memberships near you.",url:`${window.location.origin}/deals`,robots:"index, follow"});const s=n?f(n):[];return e.jsx(m,{children:e.jsxs("div",{className:"container mx-auto px-4 py-8 max-w-5xl",children:[e.jsx(h,{items:[{name:"Home",href:"/"},{name:"Deals"}]}),e.jsxs("div",{className:"flex items-center gap-3 mb-2 mt-4",children:[e.jsx("span",{className:"bg-primary text-primary-foreground p-2 rounded-lg",children:e.jsx(p,{className:"w-6 h-6","aria-hidden":"true"})}),e.jsx("h1",{className:"text-3xl md:text-4xl font-bold tracking-tight",children:"Golf Simulator Deals"})]}),e.jsx("p",{className:"text-muted-foreground mb-8 max-w-2xl",children:"Current promotions at indoor golf simulator venues â discounts on bay time, lessons, and memberships. Posted by venue owners."}),t?e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:Array.from({length:4}).map((r,a)=>e.jsx(d,{className:"h-28 w-full rounded-xl"},a))}):s.length>0?e.jsx("div",{className:"space-y-10",children:s.map(r=>e.jsxs("section",{children:[e.jsxs("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[e.jsx(c,{className:"w-4 h-4 text-primary","aria-hidden":"true"}),e.jsxs(i,{href:`/cities/${r.citySlug}`,className:"hover:text-primary hover:underline",children:[r.city,", ",r.state]})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:r.deals.map(a=>e.jsx(i,{href:`/venues/${a.venueSlug}`,children:e.jsxs("div",{className:"h-full transition-transform hover:-translate-y-0.5",children:[e.jsx(u,{deal:a}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1.5 px-1",children:a.venueName})]})},a.id))})]},r.citySlug))}):e.jsxs("div",{className:"bg-card border rounded-2xl p-10 text-center",children:[e.jsx("p",{className:"text-lg font-semibold text-foreground mb-2",children:"No active deals right now"}),e.jsx("p",{className:"text-muted-foreground mb-6 max-w-md mx-auto",children:"Check back soon â venue owners post promotions here. In the meantime, browse simulators near you."}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3 text-sm",children:[e.jsx(i,{href:"/browse",className:"text-primary hover:underline",children:"Browse all venues"}),e.jsx(i,{href:"/near-me",className:"text-primary hover:underline",children:"Find venues near me"}),e.jsx(i,{href:"/states",className:"text-primary hover:underline",children:"Browse by state"})]})]})]})})}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.