1import be from"./BlUlAP2D.js";import{_ as ye}from"./CrDDqpdd.js";import{e as fe,C as ke,x as xe,h as X,p as d,c as n,b as E,w as Y,a,t as o,l as Z,F as h,m as _e,i as P,v as L,r as _,k as m,j as we,n as T,d as U,z as ee,q as l,o as r,S as se,aa as $e,_ as Ce}from"./D8644rYh.js";import{_ as De}from"./BCML77Ap.js";import{b as Se}from"./57Hq3P5u.js";import{u as Pe}from"./MRLRowXz.js";import{u as Te,a as Le}from"./umGG1dom.js";import"./Kkw9fBGj.js";const Ue={class:"py-6 sm:py-10"},Ve=["aria-expanded"],qe={key:0,class:"mt-8 h-80 animate-pulse rounded-3xl bg-gray-100 dark:bg-ink-800","aria-hidden":"true"},Be={key:1,role:"alert",class:"mt-8 rounded-3xl bg-gray-50 p-6 text-center dark:bg-ink-800"},Ie={class:"text-danger"},Oe={class:"text-lg font-bold text-dark dark:text-white"},Ee={class:"mt-4 grid gap-4 sm:grid-cols-2"},Ne={class:"block"},Me={class:"mb-1.5 block text-sm font-medium text-dark dark:text-white"},je=["value"],Ae={key:0,class:"block"},Fe={class:"mb-1.5 block text-sm font-medium text-dark dark:text-white"},He=["value"],Ke={key:1,class:"block"},We={class:"mb-1.5 block text-sm font-medium text-dark dark:text-white"},ze={disabled:"",value:null},Ge=["value"],Je={key:2,class:"block"},Qe={class:"mb-1.5 block text-sm font-medium text-dark dark:text-white"},Re={disabled:"",value:null},Xe=["value"],Ye={class:"mt-4 block"},Ze={class:"sr-only"},es=["placeholder","disabled"],ss={class:"mt-3 flex justify-end"},ts=["disabled"],as={class:"mt-6"},os={class:"text-[11px] font-semibold uppercase tracking-[0.18em] text-grey-text dark:text-white/50"},rs=["aria-label"],ns=["aria-pressed","title"],is={class:"font-semibold"},ls={class:"sr-only"},us=["aria-pressed","onClick"],ds={class:"font-semibold"},cs={key:0,class:"opacity-70"},ms={class:"sr-only"},ps={class:"font-semibold"},vs={key:0,class:"inline-flex min-w-[1.25rem] items-center justify-center rounded-full bg-primary-600 px-1.5 py-0.5 text-xs font-semibold text-white"},gs={class:"sr-only"},hs={key:0,class:"mt-3 text-sm text-grey-text dark:text-white/60"},te="bg-primary-600 text-white ring-primary-600",N="bg-white text-dark ring-gray-200 hover:ring-primary-300 dark:bg-ink-800 dark:text-white dark:ring-white/10",Ss=fe({__name:"messages",setup(bs){const g=Pe(),M=Te(),{t:j}=ke(),V=xe(),ae=["investment","buy","sell","other"],oe=["question","documents","appointment","other"],{data:w,status:A,error:re,refresh:ne}=X("account-overview",()=>g("/account/overview"),{server:!1,getCachedData:()=>{}}),{data:F}=X("messages-unread-summary",()=>g("/contact-messages/unread-summary"),{server:!1}),ie=l(()=>A.value==="idle"||A.value==="pending"),le=l(()=>!!re.value||w.value?.sections.dossiers.status==="error"),b=l(()=>w.value?.sections.dossiers.status==="ready"?w.value.sections.dossiers.data:[]),y=l(()=>w.value?.sections.buyer_cases.status==="ready"?w.value.sections.buyer_cases.data:[]),q=l(()=>b.value.filter(e=>e.status!=="closed")),B=l(()=>F.value?.general??0),ue=l(()=>{const e={};for(const t of F.value?.dossiers??[])e[t.dossier_id]=t.unread;return e});function I(e){return ue.value[e]??0}const p=d(null),H=d(0),u=l(()=>{const e=p.value;if(e==="general")return"general";if(e?.startsWith("dossier:")){const c=e.slice(8);if(b.value.some(x=>x.id===c))return e}let t="general",i=B.value;for(const c of b.value){const x=I(c.id);x>i&&(t=`dossier:${c.id}`,i=x)}return t}),de=l(()=>u.value==="general"?"/contact-messages":void 0),K=l(()=>u.value.startsWith("dossier:")?u.value.slice(8):void 0),ce=l(()=>{if(u.value==="general")return!0;const e=b.value.find(t=>t.id===K.value);return e?e.status!=="closed":!0}),me=l(()=>`${u.value}#${H.value}`),$=d(!1),v=d("investment"),C=d("question"),f=d(null),D=d(null),S=d(""),k=d(!1),W=d(R()),z=l(()=>v.value==="sell"&&q.value.length>1),G=l(()=>v.value==="buy"&&y.value.length>1),pe=l(()=>!(v.value==="buy"&&y.value.length>0)),J=l(()=>!(!S.value.trim()||z.value&&!f.value||G.value&&!D.value));function ve(e){return e.deal?.city?`${e.reference} · ${e.deal.city}`:e.reference}function Q(e){return Se(e)}function R(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`hub-${Date.now()}-${Math.random().toString(36).slice(2)}`}async function O(e,t){await g("/contact-messages",{method:"POST",body:{body:e,domain:v.value,category:C.value,idempotency_key:t}})}async function ge(){const e=S.value.trim();if(!e||k.value||!J.value)return;k.value=!0;const t=W.value;try{if(v.value==="sell"){const i=q.value;i.length===1?(await g(`/dossiers/${i[0].id}/messages`,{method:"POST",body:{body:e,category:C.value,idempotency_key:t}}),p.value=`dossier:${i[0].id}`):i.length>1?(await g(`/dossiers/${f.value}/messages`,{method:"POST",body:{body:e,category:C.value,idempotency_key:t}}),p.value=`dossier:${f.value}`):(await O(e,t),p.value="general")}else if(v.value==="buy"){const i=y.value;if(i.length===1){await g(`/buyer/cases/${i[0].id}/messages`,{method:"POST",body:{body:e,idempotency_key:t}}),await se(V({path:`/espace/acheter/${i[0].id}`,query:{tab:"exchanges"}}));return}else if(i.length>1){const c=D.value;await g(`/buyer/cases/${c}/messages`,{method:"POST",body:{body:e,idempotency_key:t}}),await se(V({path:`/espace/acheter/${c}`,query:{tab:"exchanges"}}));return}else await O(e,t),p.value="general"}else await O(e,t),p.value="general";M.success(j("espace.messages.compose.sent")),S.value="",$.value=!1,f.value=null,D.value=null,await $e("messages-unread-summary"),H.value+=1,W.value=R()}catch(i){M.error(Le(i,j("espace.messages.error")))}finally{k.value=!1}}return(e,t)=>{const i=be,c=ye,x=Ce,he=De;return r(),n("div",Ue,[E(c,{title:e.$t("espace.messages.title"),description:e.$t("espace.messages.subtitle"),icon:"solar:chat-round-line-linear"},{actions:Y(()=>[a("button",{type:"button",class:"inline-flex min-h-11 items-center gap-2 rounded-full bg-primary-600 px-5 text-sm font-semibold text-white transition hover:bg-primary-700","aria-expanded":$.value,onClick:t[0]||(t[0]=s=>$.value=!$.value)},[E(i,{name:"solar:pen-new-square-linear",class:"h-4 w-4"}),U(" "+o(e.$t("espace.messages.compose.open")),1)],8,Ve)]),_:1},8,["title","description"]),ie.value?(r(),n("div",qe)):le.value?(r(),n("div",Be,[a("p",Ie,o(e.$t("espace.messages.loadError")),1),a("button",{type:"button",class:"mt-4 inline-flex min-h-11 items-center rounded-full bg-primary-600 px-6 font-semibold text-white hover:bg-primary-700",onClick:t[1]||(t[1]=s=>Z(ne)())},o(e.$t("espace.messages.retry")),1)])):(r(),n(h,{key:2},[$.value?(r(),n("form",{key:0,class:"mt-6 rounded-3xl bg-white p-5 shadow-lg shadow-ink/5 ring-1 ring-gray-200/80 dark:bg-ink-800 dark:ring-white/10 sm:p-6",onSubmit:_e(ge,["prevent"])},[a("h2",Oe,o(e.$t("espace.messages.compose.title")),1),a("div",Ee,[a("label",Ne,[a("span",Me,o(e.$t("espace.messages.compose.domainLabel")),1),P(a("select",{"onUpdate:modelValue":t[2]||(t[2]=s=>v.value=s),class:"h-11 w-full rounded-xl border border-gray-300 bg-white px-3 text-sm text-dark outline-none focus:border-primary-500 dark:border-white/15 dark:bg-ink dark:text-white"},[(r(),n(h,null,_(ae,s=>a("option",{key:s,value:s},o(e.$t(`espace.messages.compose.domains.${s}`)),9,je)),64))],512),[[L,v.value]])]),pe.value?(r(),n("label",Ae,[a("span",Fe,o(e.$t("espace.messages.compose.categoryLabel")),1),P(a("select",{"onUpdate:modelValue":t[3]||(t[3]=s=>C.value=s),class:"h-11 w-full rounded-xl border border-gray-300 bg-white px-3 text-sm text-dark outline-none focus:border-primary-500 dark:border-white/15 dark:bg-ink dark:text-white"},[(r(),n(h,null,_(oe,s=>a("option",{key:s,value:s},o(e.$t(`espace.messages.compose.categories.${s}`)),9,He)),64))],512),[[L,C.value]])])):m("",!0),z.value?(r(),n("label",Ke,[a("span",We,o(e.$t("espace.messages.compose.pickDossier")),1),P(a("select",{"onUpdate:modelValue":t[4]||(t[4]=s=>f.value=s),required:"",class:"h-11 w-full rounded-xl border border-gray-300 bg-white px-3 text-sm text-dark outline-none focus:border-primary-500 dark:border-white/15 dark:bg-ink dark:text-white"},[a("option",ze,o(e.$t("espace.messages.compose.pickDossier")),1),(r(!0),n(h,null,_(q.value,s=>(r(),n("option",{key:s.id,value:s.id},o(ve(s)),9,Ge))),128))],512),[[L,f.value]])])):m("",!0),G.value?(r(),n("label",Je,[a("span",Qe,o(e.$t("espace.messages.compose.pickCase")),1),P(a("select",{"onUpdate:modelValue":t[5]||(t[5]=s=>D.value=s),required:"",class:"h-11 w-full rounded-xl border border-gray-300 bg-white px-3 text-sm text-dark outline-none focus:border-primary-500 dark:border-white/15 dark:bg-ink dark:text-white"},[a("option",Re,o(e.$t("espace.messages.compose.pickCase")),1),(r(!0),n(h,null,_(y.value,s=>(r(),n("option",{key:s.id,value:s.id},o(Q(s)),9,Xe))),128))],512),[[L,D.value]])])):m("",!0)]),a("label",Ye,[a("span",Ze,o(e.$t("espace.messages.placeholder")),1),P(a("textarea",{"onUpdate:modelValue":t[6]||(t[6]=s=>S.value=s),rows:"3",maxlength:"4000",class:"w-full rounded-2xl border border-gray-300 bg-white px-4 py-3 text-sm text-dark focus:outline-none focus:ring-2 focus:ring-primary-500 dark:border-white/10 dark:bg-ink-900 dark:text-white",placeholder:e.$t("espace.messages.placeholder"),disabled:k.value},null,8,es),[[we,S.value]])]),a("div",ss,[a("button",{type:"submit",class:"min-h-11 rounded-full bg-primary-600 px-6 text-sm font-semibold text-white transition hover:bg-primary-700 disabled:opacity-50",disabled:!J.value||k.value},o(k.value?"â¦":e.$t("espace.messages.compose.submit")),9,ts)])],32)):m("",!0),a("section",as,[a("p",os,o(e.$t("espace.messages.hub.conversations")),1),a("div",{class:"mt-3 flex flex-wrap gap-2",role:"group","aria-label":e.$t("espace.messages.hub.conversations")},[a("button",{type:"button",class:T(["inline-flex min-h-11 items-center gap-2 rounded-full px-4 text-sm font-medium ring-1 transition",u.value==="general"?te:N]),"aria-pressed":u.value==="general",title:e.$t("espace.messages.hub.generalHint"),onClick:t[7]||(t[7]=s=>p.value="general")},[a("span",is,o(e.$t("espace.messages.hub.general")),1),B.value?(r(),n("span",{key:0,class:T(["inline-flex min-w-[1.25rem] items-center justify-center rounded-full px-1.5 py-0.5 text-xs font-semibold",u.value==="general"?"bg-white/20 text-white":"bg-primary-600 text-white"])},[a("span",ls,o(e.$t("espace.messages.unreadLabel"))+" : ",1),U(o(B.value),1)],2)):m("",!0)],10,ns),(r(!0),n(h,null,_(b.value,s=>(r(),n("button",{key:s.id,type:"button",class:T(["inline-flex min-h-11 items-center gap-2 rounded-full px-4 text-sm font-medium ring-1 transition",u.value==="dossier:"+s.id?te:N]),"aria-pressed":u.value==="dossier:"+s.id,onClick:ys=>p.value="dossier:"+s.id},[a("span",ds,o(s.reference),1),s.deal?.city?(r(),n("span",cs,"· "+o(s.deal.city),1)):m("",!0),I(s.id)?(r(),n("span",{key:1,class:T(["inline-flex min-w-[1.25rem] items-center justify-center rounded-full px-1.5 py-0.5 text-xs font-semibold",u.value==="dossier:"+s.id?"bg-white/20 text-white":"bg-primary-600 text-white"])},[a("span",ms,o(e.$t("espace.messages.unreadLabel"))+" : ",1),U(o(I(s.id)),1)],2)):m("",!0)],10,us))),128)),(r(!0),n(h,null,_(y.value,s=>(r(),ee(x,{key:s.id,to:Z(V)({path:"/espace/acheter/"+s.id,query:{tab:"exchanges"}}),class:T(["inline-flex min-h-11 items-center gap-2 rounded-full px-4 text-sm font-medium ring-1 transition",N]),title:e.$t("espace.messages.hub.buyerOpen")},{default:Y(()=>[a("span",ps,o(Q(s)),1),s.unread_customer_count?(r(),n("span",vs,[a("span",gs,o(e.$t("espace.messages.unreadLabel"))+" : ",1),U(o(s.unread_customer_count),1)])):m("",!0),E(i,{name:"solar:arrow-right-up-linear",class:"h-3.5 w-3.5 opacity-60"})]),_:2}
1,1032,["to","title"]))),128))],8,rs),!b.value.length&&!y.value.length?(r(),n("p",hs,o(e.$t("espace.messages.hub.emptyHint")),1)):m("",!0)]),(r(),ee(he,{key:me.value,"api-base":de.value,"dossier-id":K.value,"can-write":ce.value,"show-header":!1},null,8,["api-base","dossier-id","can-write"]))],64))])}}});export{Ss 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.