1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7374],{319:(e,t,r)=>{"use strict";r.d(t,{MerklisteResults:()=>c});var a=r(5155),i=r(910),s=r(5483),n=r(2084),l=r(3107),o=r(7064),d=r(2115);function c(){let e=(0,i.c)("merkliste"),t=(0,i.c)("listing"),{slugs:r,ready:c,mode:u}=(0,l.U)(),{status:f}=(0,o.wV)(),[h,m]=(0,d.useState)([]),g=(0,d.useMemo)(()=>({roomsShort:t("roomsShort"),badgeRent:t("badgeRent"),badgeBuy:t("badgeBuy"),favoriteAdd:t("favoriteAdd"),favoriteRemove:t("favoriteRemove"),badgeNew:t("badgeNew")}),[t]),x=r.join("|");return((0,d.useEffect)(()=>{if(c&&"loading"!==f){if(0===r.length)return void m([]);if("server"===u)return void(async()=>{try{let e=await fetch("/api/favorites",{cache:"no-store"}),t=await e.json();m(Array.isArray(t.listings)?t.listings:[])}catch{m([])}})();(async()=>{try{let e=await fetch("/api/listings/resolve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slugs:r})}),t=await e.json();m(Array.isArray(t.listings)?t.listings:[])}catch{m([])}})()}},[c,f,u,x,r]),c&&"loading"!==f)?0===r.length?(0,a.jsxs)("div",{className:"rounded-xl border border-dashed border-zinc-300 bg-white p-12 text-center dark:border-zinc-600 dark:bg-zinc-900",children:[(0,a.jsx)("p",{className:"text-zinc-600 dark:text-zinc-400",children:e("empty")}),(0,a.jsx)(s.N_,{href:"/suche",className:"mt-6 inline-flex rounded-lg bg-bd-primary px-5 py-2.5 text-sm font-semibold text-bd-primary-fg hover:bg-bd-primary-hover",children:e("goSearch")})]}):(0,a.jsx)("ul",{className:"flex max-w-2xl flex-col gap-5",children:h.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)(n.ListingCardBody,{listing:e,copy:g})},e.id))}):(0,a.jsx)("p",{className:"text-sm text-zinc-500 dark:text-zinc-400",children:e("loading")})}},2084:(e,t,r)=>{"use strict";r.d(t,{ListingCardBody:()=>c});var a=r(5155),i=r(5483),s=r(5772);let n=new Set(["images.unsplash.com"]);function l({src:e,alt:t,fill:r,sizes:i,className:o,priority:d}){let c="";try{c=new URL(e).hostname}catch{return null}return n.has(c)&&r?(0,a.jsx)(s.default,{src:e,alt:t,fill:!0,sizes:i,priority:d,className:o}):r?(0,a.jsx)("img",{src:e,alt:t,sizes:i,loading:d?"eager":"lazy",className:`absolute inset-0 h-full w-full object-cover ${o??""}`}):(0,a.jsx)("img",{src:e,alt:t,className:o,loading:d?"eager":"lazy"})}var o=r(3107);function d({slug:e,labelAdd:t,labelRemove:r,className:i=""}){let{has:s,toggle:n,ready:l}=(0,o.U)(),c=s(e),u=c?r:t;return(0,a.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),n(e)},disabled:!l,"aria-pressed":c,"aria-label":u,title:u,className:`flex h-10 w-10 items-center justify-center rounded-lg border border-white/80 bg-white/95 text-zinc-600 shadow-md backdrop-blur-sm transition hover:bg-white hover:text-red-600 dark:border-zinc-700 dark:bg-zinc-900/95 dark:text-zinc-300 dark:hover:text-red-400 ${c?"text-red-600 dark:text-red-400":""} ${i}`,children:c?(0,a.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:(0,a.jsx)("path",{d:"M11.645 20.91l-.007-.003-.022-.012a15.247 15.247 0 01-.383-.218 25.18 25.18 0 01-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0112 5.052 5.5 5.5 0 0116.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 01-4.244 3.17l-.022.012-.007.003-.003.001a.75.75 0 01-.673 0l-.003-.001z"})}):(0,a.jsx)("svg",{className:"h-5 w-5",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:(0,a.jsx)("path",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",d:"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z"})})})}function c({listing:e,copy:t,showFavorite:r=!0}){let s="rent"===e.kind?t.badgeRent:t.badgeBuy,n=new Intl.NumberFormat("de-DE",{style:"currency",currency:"EUR",maximumFractionDigits:0}).format(e.priceEur);return(0,a.jsxs)("article",{className:"group relative flex flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white shadow-[var(--shadow-bd-card)] transition hover:border-bd-primary/35 hover:shadow-[var(--shadow-bd-float)] dark:border-zinc-800 dark:bg-zinc-900 dark:hover:border-teal-500/40",children:[r?(0,a.jsx)("div",{className:"absolute right-3 top-3 z-10",children:(0,a.jsx)(d,{slug:e.slug,labelAdd:t.favoriteAdd,labelRemove:t.favoriteRemove})}):null,(0,a.jsxs)(i.N_,{href:`/inserat/${e.slug}`,className:"flex flex-1 flex-col outline-none focus-visible:ring-2 focus-visible:ring-bd-primary focus-visible:ring-offset-2 dark:focus-visible:ring-offset-zinc-950",children:[(0,a.jsxs)("div",{className:"relative aspect-[16/10] overflow-hidden bg-gradient-to-br from-zinc-200 to-zinc-300 dark:from-zinc-800 dark:to-zinc-900",children:[e.coverImageUrl?(0,a.jsx)(l,{src:e.coverImageUrl,alt:e.title,fill:!0,sizes:"(max-width: 640px) 100v
1w, (max-width: 1024px) 50vw, 33vw",className:"transition duration-500 ease-out group-hover:scale-[1.04]"}):null,(0,a.jsx)("span",{className:"absolute left-3 top-3 rounded-md bg-white/95 px-2 py-1 text-xs font-bold text-bd-primary shadow-sm dark:bg-zinc-950/95 dark:text-teal-300",children:n}),(0,a.jsxs)("div",{className:"absolute bottom-3 left-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"rounded-md bg-zinc-900/85 px-2 py-1 text-xs font-semibold text-white dark:bg-zinc-100/90 dark:text-zinc-900",children:s}),e.isNew?(0,a.jsx)("span",{className:"rounded-md bg-bd-primary px-2 py-1 text-xs font-bold text-bd-primary-fg shadow-sm",children:t.badgeNew}):null]})]}),(0,a.jsxs)("div",{className:"flex flex-1 flex-col p-4",children:[(0,a.jsxs)("p",{className:"text-xs font-medium text-zinc-500 dark:text-zinc-400",children:[e.postalCode," ",e.city]}),(0,a.jsx)("h2",{className:"mt-1 line-clamp-2 text-base font-semibold leading-snug text-zinc-900 group-hover:text-bd-primary dark:text-zinc-50 dark:group-hover:text-teal-300",children:e.title}),(0,a.jsxs)("p",{className:"mt-3 text-sm text-zinc-600 dark:text-zinc-400",children:[e.rooms," ",t.roomsShort," \xb7 ",e.livingAreaM2," m\xb2"]})]})]})]})}},3107:(e,t,r)=>{"use strict";r.d(t,{A:()=>c,U:()=>u});var a=r(5155),i=r(7064),s=r(2115);let n="buildeo:merkliste",l="buildeo:merkliste",o=(0,s.createContext)(null);function d(){try{let e=localStorage.getItem(n);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}}function c({children:e}){let{data:t,status:r}=(0,i.wV)(),[u,f]=(0,s.useState)([]),[h,m]=(0,s.useState)([]),[g,x]=(0,s.use
1State)(!1),b=(0,s.useRef)(!1),v="authenticated"===r&&!!t?.user?.id,p=v?"server":"local",y=(0,s.useCallback)(()=>{f(d())},[]);(0,s.useEffect)(()=>{let e=e=>{e.key===n&&y()},t=()=>y();return window.addEventListener("storage",e),window.addEventListener(l,t),()=>{window.removeEventListener("storage",e),window.removeEventListener(l,t)}},[y]),(0,s.useEffect)(()=>{if("loading"!==r){if(!v){y(),x(!0),b.current=!1;return}(async()=>{let e=d();if(e.length>0&&!b.current){for(let t of(b.current=!0,e))try{await fetch("/api/favorites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t})})}catch{}try{localStorage.removeItem(n)}catch{}window.dispatchEvent(new Event(l))}try{let e=await fetch("/api/favorites",{cache:"no-store"}),t=await e.json();m(Array.isArray(t.slugs)?t.slugs:[])}catch{m([])}x(!0)})()}},[r,v,y]);let w="server"===p?h:u,k=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/favorites",{cache:"no-store"}),t=await e.json();m(Array.isArray(t.slugs)?t.slugs:[])}catch{}},[]),j=(0,s.useCallback)(async e=>{if("server"===p){let t=h.includes(e);try{t?(await fetch(`/api/favorites/${encodeURIComponent(e)}`,{method:"DELETE"}),m(t=>t.filter(t=>t!==e))):(await fetch("/api/favorites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:e})}),m(t=>t.includes(e)?t:[...t,e]))}catch{await k()}return}f(t=>{let r=t.includes(e)?t.filter(t=>t!==e):[...t,e];try{localStorage.setItem(n,JSON.stringify(r))}catch{}return window.dispatchEvent(new Event(l)),r})},[p,h,k]),z=(0,s.useCallback)(e=>w.includes(e),[w]),N=(0,s.useMemo)(()=>({slugs:w,ready:g&&"loading"!==r,toggle:j,has:z,count:w.length,mode:p}),[w,g,r,j,z,p]);return(0,a.jsx)(o.Provider,{value:N,children:e})}function u(){let e=(0,s.useContext)(o);if(!e)throw Error("useMerkliste must be used within MerklisteProvider");return e}},5483:(e,t,r)=>{"use strict";r.d(t,{N_:()=>s,a8:()=>l,rd:()=>o});var a=r(2430);let i=(0,r(3474).A)({locales:["de"],defaultLocale:"de",localePrefix:"as-needed"}),{Link:s,redirect:n,usePathname:l,useRouter:o,getPathname:d}=(0,a.A)(i)},5772:(e,t,r)=>{"use strict";r.d(t,{default:()=>i.a});var a=r(7651),i=r.n(a)},6583:(e,t,r)=>{Promise.resolve().then(r.bind(r,1930)),Promise.resolve().then(r.bind(r,319))},7651:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a={default:function(){return c},getImageProps:function(){return d}};for(var i in a)Object.defineProperty(t,i,{enumerable:!0,get:a[i]});let s=r(3623),n=r(5413),l=r(8437),o=s._(r(6095));function d(e){let{props:t}=(0,n.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=l.Image}},e=>{e.O(0,[3418,6558,8819,2822,8441,3794,7358],()=>e(e.s=6583)),_N_E=e.O()}]);
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.