import{n as y,I as N,b as _,j as a,R as C,l as k,af as w}from"./app-B8DM_ORs.js";import{r as o}from"./sentry-ChN4yje8.js";import{a as g,A as z}from"./MetaHeader-DiHyVN82.js";import{P as f}from"./Pill-B6dfs2Rw.js";import{s as $}from"./strings-CfeZg9NH.js";import{r as L,b as F}from"./listings-DpwlJMzp.js";import"./firebase-3w91zlJZ.js";import{V as I}from"./Video-RP6iUnU3.js";const P=({listingId:c,className:m,loggedIn:e})=>{const d=y(s=>s.favorites),u=y(s=>s.setFavorites),{langCode:p}=o.useContext(N),{translate:i}=o.useContext(N),{showToast:n}=o.useContext(_),[x,l]=o.useState(!1),t=o.useMemo(()=>!!d.find(s=>s.id===c),[d,c]),b=o.useCallback(s=>{console.error(s),l(!1),n({type:"error",title:i("common.form.error.title"),text:`${s}`})},[n,i]);return a.jsx(C,{variant:t?"white":"primary",href:e?void 0:route("dashboard",{locale:p}),className:`${t?"opacity-50":"opacity-100"} ${m}`,icon:t?"bookmark":"bookmark_outline",loading:x,onClick:async s=>{if(e){if(s.preventDefault(),l(!0),t){try{const r=await L(c||"");u(r.data),l(!1),n({type:"success",title:"Listing is remove from bookmarks",text:""})}catch(r){b(r)}return}try{const r=await F(c||"");u(r.data),l(!1),n({type:"success",title:"Listing is saved",text:""})}catch(r){b(r)}}}})},D=({user:c,showFavButton:m=!0,listing:e,avatarClassName:d="absolute right-4 bottom-4",focussed:u,onMouseOver:p,onMouseOut:i,children:n})=>{var h;const{currency:x,rate:l}=o.useContext(k),{translate:t,langCode:b,formatNumber:s}=g(),r=o.useMemo(()=>{var v,j;return(j=(v=e.images)==null?void 0:v[0])==null?void 0:j.url},[e.images]);return a.jsxs("div",{className:"relative",children:[m&&a.jsx(P,{listingId:e.id,className:"absolute z-[11] right-6 top-6",loggedIn:!!c}),a.jsx("a",{href:e.id&&e.uri?route("listing",{locale:b||w,listing:e.id,uri:e.uri}):"#",target:"_blank",rel:"noreferrer",className:"group relative",onMouseOver:()=>p&&p(),onMouseOut:()=>i&&i(),children:a.jsxs("div",{className:`rounded-md px-3 py-3 transition-all duration-500 ${u?"bg-neutral-100":"bg-white"}`,children:[a.jsxs("div",{className:"relative pb-[56.4%] mb-2 aspect-w-4 aspect-h-3 w-full overflow-hidden rounded-md bg-gray-200 group-hover:opacity-90 transition-opacity lg:aspect-none",children:[e.promoted&&a.jsx("div",{className:`absolute z-20 top-4 ${m?"right-auto left-4":"right-4"}`,children:a.jsx(f,{size:"x-small",label:t("common.promoted")})}),a.jsx("div",{className:"absolute h-full w-full",children:e.video?a.jsx(I,{video:e.video,thumbnail:r??void 0,muted:!0,loop:!0}):r?a.jsx("img",{src:r,alt:e.title,className:"object-cover object-center select-none drag-none h-full w-full"}):null})]}),a.jsx("h3",{className:"text-lg font-semibold text-neutral-800 line-clamp-2 leading-tight",children:$(e.title??"")}),a.jsx("h4",{className:"text-base text-gray-500 pb-2",children:e.location}),a.jsxs("div",{className:"flex items-end",children:[!!e.buy_price_dollars&&a.jsxs("div",{className:"pr-4",children:[!!e.buy_price_dollars&&!!e.rent_price_dollars&&a.jsx("span",{className:"text-base font-normal text-neutral-400 inline-block",children:t("pages.listing.buyPrice")}),a.jsx("p",{className:"text-xl font-semibold text-accent1 line-clamp-2",children:s(e.buy_price_dollars*l,{currency:x})})]}),!!e.rent_price_dollars&&a.jsxs("div",{className:"pr-4",children:[!!e.buy_price_dollars&&!!e.rent_price_dollars&&a.jsx("span",{className:"text-base font-normal text-neutral-400 inline-block",children:t("pages.listing.rentPrice")}),a.jsx("p",{className:"text-xl font-semibold text-accent1 line-clamp-2",children:s(e.rent_price_dollars*l,{currency:x})})]})]}),a.jsx("div",{className:"pt-4",children:a.jsxs("div",{className:"w-100 flex flex-wrap justify-start",children:[!!e.bedrooms&&a.jsx(f,{className:"mr-2 mb-2",variant:"secondary",size:"small",leftIcon:"king_bed",label:`${e.bedrooms}`}),!!e.bathrooms&&a.jsx(f,{className:"mr-2 mb-2",variant:"secondary",size:"small",leftIcon:"shower",label:`${e.bathrooms}`}),!!e.size_m2&&a.jsx(f,{className:"mr-2 mb-2",variant:"secondary",size:"small",leftIcon:"aspect_ratio",label:`${s(e.size_m2,{})} m2`})]})}),!!((h=e.user)!=null&&h.photo)&&a.jsx("div",{className:d,children:a.jsx(z,{image:e.user.photo,size:40,round:!0,alt:`${e.user.full_name} profile photo`})}),n]})})]})};export{P as F,D as L};
