PageSourceSearch

https://lv5capital.com/assets/InvestmentDetail-BowyTbbV.js

js lv5capital.com collected 2026-10-04 04:08:58 UTC 6,918 bytes, 1 lines download raw bytes

1import{d as k,r as P,j as e,S as c,L as r}from"./index-pnw7vN9z.js";import{u as S}from"./useQuery-w2ZDMcwL.js";import{H as x,F as p,M as $}from"./Footer-BJxCwxzn.js";import{B as u}from"./button-B9_AU6ak.js";import{C,a as T}from"./card-DYfi2lB_.js";import{S as h}from"./skeleton-CS5QBm4E.js";import{a as B,c as A,l as I,b as g,f as j}from"./mls-vvFCE2u-.js";import{B as R}from"./building-2-B7Gazl9g.js";import{A as v}from"./arrow-right-BbVATkcx.js";import{A as M}from"./arrow-left-DZr0tpBL.js";import"./utils-km2FGkQ4.js";function G(){const n=k().slug||"",[o,y]=P.useState(0),{data:s,isLoading:b,isError:N}=S({queryKey:["/api/mls/listings",n],retry:!1}),t=s==null?void 0:s.data,w=N||!b&&!t;if(b)return e.jsxs("div",{className:"min-h-screen bg-background","data-testid":"page-investment-detail-loading",children:[e.jsx(c,{title:"Investment Listing | LV5 Capital",description:"Investment property listing.",path:`/investments/${n}`,noindex:!0}),e.jsx(x,{}),e.jsx("main",{className:"pt-28 pb-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-8 space-y-6",children:[e.jsx(h,{className:"h-8 w-48"}),e.jsx(h,{className:"h-96 w-full rounded-md"}),e.jsx(h,{className:"h-40 w-full rounded-md"})]})}),e.jsx(p,{})]});if(w||!t)return e.jsxs("div",{className:"min-h-screen bg-background","data-testid":"page-investment-detail-notfound",children:[e.jsx(c,{title:"Listing Not Available | LV5 Capital",description:"This investment listing is no longer available.",path:`/investments/${n}`,noindex:!0}),e.jsx(x,{}),e.jsx("main",{className:"pt-28 pb-20",children:e.jsxs("div",{className:"max-w-2xl mx-auto px-6 lg:px-8 text-center py-16",children:[e.jsx(R,{className:"w-12 h-12 text-muted-foreground/40 mx-auto mb-4"}),e.jsx("h1",{className:"font-heading text-2xl font-bold text-foreground mb-2",children:"This listing is no longer available"}),e.jsx("p",{className:"text-muted-foreground font-body mb-6",children:"The property you're looking for may have been sold or removed from the MLS."}),e.jsx(r,{href:"/investments",children:e.jsxs(u,{className:"bg-primary text-white","data-testid":"button-back-to-investments",children:["Browse Investment Properties",e.jsx(v,{className:"w-4 h-4 ml-2"})]})})]})}),e.jsx(p,{})]});const d=B(t),m=A(t),f=I(t),l=(t.photos&&t.photos.length>0?t.photos:t.primaryPhoto?[t.primaryPhoto]:[]).slice(0,12),L=[{label:"Property Type",value:g(t.propertyType)},t.propertySubType?{label:"Subtype",value:t.propertySubType}:null,t.listPrice!=null?{label:"List Price",value:j(t.listPrice)}:null,t.units!=null?{label:"Units",value:String(t.units)}:null,t.buildingSqft!=null?{label:"Building Size",value:`${t.buildingSqft.toLocaleString()} sq ft`}:null,t.yearBuilt!=null?{label:"Year Built",value:String(t.yearBuilt)}:null,t.lotAcres?{label:"Lot Size",value:`${t.lotAcres} acres`}:null].filter(Boolean);return e.jsxs("div",{className:"min-h-screen bg-background","data-testid":"page-investment-detail",children:[e.jsx(c,{title:`${d} | Investment Property | LV5 Capital`,description:t.publicRemarks?t.publicRemarks.slice(0,155):`${g(t.propertyType)} investment property for sale in ${m||"the Midwest"}.`,path:`/investments/${t.slug}`,ogImage:t.primaryPhoto||void 0,noindex:!0}),e.jsx(x,{}),e.jsx("main",{className:"pt-28 pb-20",children:e.jsxs("div",{className:"max-w-5xl mx-auto px-6 lg:px-8",children:[e.jsxs(r,{href:"/investments",className:"text-primary hover:underline text-sm font-medium inline-flex items-center gap-1 mb-6","data-testid":"link-back-investments",children:[e.jsx(M,{className:"w-4 h-4"})," All Investment Properties"]}),e.jsx("span",{className:"inline-block bg-primary/10 text-primary text-xs font-medium px-2.5 py-1 rounded mb-3",children:g(t.propertyType)}),e.jsx("h1",{className:"font-heading text-3xl md:text-4xl font-bold text-foreground mb-2","data-testid":"text-listing-title",children:d}),m&&e.jsxs("p",{className:"text-muted-foreground flex items-center gap-1.5 mb-4",children:[e.jsx($,{className:"w-4 h-4"})," ",m]}),e.jsx("p",{className:"font-heading text-2xl md:text-3xl font-bold text-primary mb-8","data-testid":"text-listing-price",children:j(t.listPrice)}),l.length>0&&e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"aspect-[16/9] rounded-md overflow-hidden bg-muted mb-3",children:e.jsx("img",{src:l[o],alt:`${d} — photo ${o+1}`,className:"w-full h-full object-cover",decoding:"async","data-testid":"img-listing-primary"})}),l.length>1&&e.jsx("div",{className:"grid grid-cols-4 sm:grid-cols-6 gap-2",children:l.map((a,i)=>e.jsx("button",{onClick:()=>y(i),className:`aspect-[4/3] rounded overflow-hidden border-2 transition-colors ${i===o?"border-primary":"border-transparent"}`,"data-testid":`button-thumb-${i}`,children:e.jsx("img",{src:a,alt:`Thumbnail ${i+1}`,className:"w-full h-full object-cover",loading:"lazy",decoding:"async"})},a+i))})]}),e.jsxs("div",{className:"grid md:grid-cols-3 gap-8",children:[e.jsxs("div",{className:"md:col-span-2",children:[e.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mb-4",children:"Property Details"}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-3 mb-8",children:L.map(a=>e.jsxs("div",{className:"bg-card border border-border/50 rounded-md p-4","data-testid":`fact-${a.label.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("p",{className:"text-muted-foreground text-xs font-medium uppercase tracking-wider mb-1",children:a.label}),e.jsx("p",{className:"font-heading font-bold text-foreground",children:a.value})]},a.label))}),t.publicRemarks&&e.jsxs("div",{className:"mb-8",children:[e.jsx("h2",{className:"font-heading text-xl font-bold text-foreground mb-3",children:"Description"}),e.jsx("p",{className:"text-muted-foreground font-body leading-relaxed whitespace-pre-line","data-testid":"text-listing-remarks",children:t.publicRemarks})]}
1),f&&e.jsx("p",{className:"text-muted-foreground/70 text-sm font-body mb-2","data-testid":"text-listing-attribution",children:f}),(s==null?void 0:s.attribution)&&e.jsx("p",{className:"text-muted-foreground/60 text-xs font-body",children:s.attribution})]}),e.jsx("div",{children:e.jsx(C,{className:"bg-card border-border sticky top-28",children:e.jsxs(T,{className:"p-5",children:[e.jsx("h2",{className:"font-heading font-bold text-foreground mb-2",children:"Interested in this property?"}),e.jsx("p",{className:"text-muted-foreground text-sm font-body mb-4",children:"LV5 Capital helps accredited investors evaluate multifamily and commercial opportunities across the Midwest. Reach out to discuss this listing."}),e.jsx(r,{href:"/contact",children:e.jsxs(u,{className:"w-full bg-primary text-white mb-3","data-testid":"button-contact-about-listing",children:["Contact LV5 Capital",e.jsx(v,{className:"w-4 h-4 ml-2"})]})}),e.jsx(r,{href:"/investments",children:e.jsx(u,{variant:"outline",className:"w-full","data-testid":"button-browse-more",children:"Browse More Listings"})})]})})})]})]})}),e.jsx(p,{})]})}export{G 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.