2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
import{_ as fe}from"./BasicMainCard-0ad7dc72.js";import{g as Y,a as ue,b as _e,c as we,t as $e,s as ke,d as Ce,m as ce,r as Te,e as xe}from"./support-2cf64a0b.js";import{_ as Se}from"./BasicInput.vue_vue_type_style_index_0_lang-f043e831.js";import{_ as Z}from"./button.vue_vue_type_style_index_0_lang-bc3a48f6.js";import{I as me}from"./Icon-767d2866.js";import{g as le}from"./convert-2ad76038.js";import{S as Be}from"./index-d68d1b34.js";import{d as G,g as y,h as F,l as Me,o as l,c as d,i as re,k as T,aA as De,a as e,b as v,w as A,e as ae,t as h,j as E,F as N,n as ie,p as L,O as pe,P as ve,E as he,Q as de,J as be,a6 as Ie,B as oe,bg as Re,v as ge,A as Ae,G as P,D as Fe}from"./index-24cdd011.js";import{_ as ye}from"./_plugin-vue_export-helper-06d65383.js";import"./index-3078e65c.js";import{B as Ve}from"./Badge-aa4916ac.js";import{A as ze}from"./index-909488b9.js";import"./Grid-ce03674d.js";import"./index-bcc6b780.js";import"./shallowequal-59945f6f.js";import"./index-4057f476.js";import"./isSymbol-e7ce9b5a.js";import"./vnode-562ae89f.js";import"./index-fec9c5bc.js";import"./useState-bb6abd58.js";import"./useRefs-2bd76cbf.js";import"./_flatRest-28f96ed6.js";import"./isMobile-e2e89480.js";import"./omit-08db5ef5.js";import"./index-ef7f0d13.js";import"./Col-8ec8a751.js";import"./styleChecker-aeb3f501.js";import"./isPlainObject-25081d35.js";import"./usePrice-bc935b83.js";import"./index-942dc2ed.js";import"./SearchOutlined-3570b8ac.js";import"./FormItemContext-a07e1be1.js";import"./index-cbf3fafb.js";import"./isNumeric-3f69e2aa.js";import"./css-aae66f86.js";import"./DialogWrap-4e2453b1.js";import"./pickAttrs-64381c06.js";const q=w=>(pe("data-v-94861bea"),w=w(),ve(),w),Le={class:"admin-sidebar__header"},Ne={class:"admin-sidebar__top"},qe={class:"admin-sidebar__title-wrap"},Ke={class:"admin-sidebar__icon"},Ue=q(()=>e("div",{class:"min-w-0"},[e("h2",{class:"admin-sidebar__title"},"گفتگوهای پشتیبانی"),e("p",{class:"admin-sidebar__subtitle"},"مدیریت کاربران و پیامها")],-1)),Oe={class:"flex"},je={class:"admin-sidebar__actions"},He={class:"admin-sidebar__stats"},Pe={class:"admin-sidebar__stat"},Ye={class:"admin-sidebar__stat-value"},Ee=q(()=>e("span",{class:"admin-sidebar__stat-label"},"گفتگو",-1)),Ge={class:"admin-sidebar__stat admin-sidebar__stat--unread"},Je={class:"admin-sidebar__stat-value"},Qe=q(()=>e("span",{class:"admin-sidebar__stat-label"},"خواندهنشده",-1)),We={class:"admin-sidebar__search"},Xe={class:"admin-sidebar__body"},Ze={key:0,class:"admin-sidebar__loading"},et=["onClick"],tt={class:"admin-room-card__avatar"},st=["src","alt"],nt={key:1,class:"admin-room-card__avatar-text"},at={class:"admin-room-card__content"},ot={class:"admin-room-card__head"},it={class:"admin-room-card__name"},lt={class:"admin-room-card__time"},rt={class:"admin-room-card__message-row"},dt={class:"admin-room-card__preview"},ct={key:0,class:"admin-room-card__badge"},ut={key:0,class:"admin-sidebar__empty"},_t={class:"admin-sidebar__empty-icon"},mt=q(()=>e("h3",{class:"admin-sidebar__empty-title"},"گفتگویی وجود ندارد",-1)),pt=q(()=>e("p",{class:"admin-sidebar__empty-text"},"وقتی کاربر پیام بفرستد، اینجا نمایش داده میشود.",-1)),vt={key:1,class:"admin-sidebar__empty"},ht={class:"admin-sidebar__empty-icon"},bt=q(()=>e("h3",{class:"admin-sidebar__empty-title"},"موردی پیدا نشد",-1)),gt=q(()=>e("p",{class:"admin-sidebar__empty-text"},"عبارت جستجو را تغییر بده یا بعداً دوباره بررسی کن.",-1)),yt=G({__name:"AdminSupportSidebar",props:{conversations:{},activeConversationId:{},mobileOpen:{type:Boolean},loading:{type:Boolean}},emits:["select","close-mobile"],setup(w){const f=w,m=y(""),_=n=>String(n||"").trim().replace(/ي/g,"ی").replace(/ك/g,"ک").toLowerCase(),g=F(()=>{const n=_(m.value);return n?f.conversations.filter(a=>{var r;return _(Y(a)).includes(n)||_(a.last_message_preview).includes(n)||_(((r=a.users)==null?void 0:r.phone)||"").includes(n)||_(a.guest_name||"").includes(n)||_(a.guest_id||"").includes(n)}):f.conversations}),$=F(()=>f.conversations.reduce((n,a)=>n+Number(a.unread_by_admin||0),0)),k=n=>{var r;const a=(r=n.users)==null?void 0:r.avatar;return a?le(a):""},C=n=>{const a=Y(n);return String(a||"ک").trim().slice(0,1)},x=n=>{const a=n.last_message_at||n.updated_at;if(!a)return"";const r=new Date(a);if(Number.isNaN(r.getTime()))return"";const s=new Date;return r.getFullYear()===s.getFullYear()&&r.getMonth()===s.getMonth()&&r.getDate()===s.getDate()?new Intl.DateTimeFormat("fa-IR",{hour:"2-digit",minute:"2-digit"}).format(r):new Intl.DateTimeFormat("fa-IR",{month:"short",day:"numeric"}).format(r)};return(n,a)=>{const r=me,s=Z,S=Me("RouterLink"),M=Se;return l(),d(N,null,[(l(),re(De,{to:"body"},[n.mobileOpen?(l(),d("div",{key:0,class:"admin-sidebar-backdrop md:hidden",onClick:a[0]||(a[0]=p=>n.$emit("close-mobile"))})):T("",!0)])),e("aside",{class:L(["admin-sidebar",[n.mobileOpen?"admin-sidebar--open":"admin-sidebar--closed",n.mobileOpen?"pointer-events-auto":"pointer-events-none md:pointer-events-auto"]])},[e("div",Le,[e("div",Ne,[e("div",qe,[e("div",Ke,[v(r,{icon:"vuesax-linear:messages-2"})]),Ue]),v(s,{type:"default",class:"admin-sidebar__close md:!hidden px-0",danger:"",onClick:a[1]||(a[1]=p=>n.$emit("close-mobile"))},{default:A(()=>[e("div",Oe,[v(r,{icon:"vuesax-linear:add",class:"rotate-45"}),ae(" بستن ")])]),_:1})]),e("div",je,[v(S,{to:{name:"supportFaq"},class:"admin-sidebar__faq-link"},{default:A(()=>[v(r,{icon:"vuesax-linear:message-question",size:"16"}),ae(" سوالات متداول ")]),_:1}),v(S,{to:{name:"supportTickets"},class:"admin-sidebar__faq-link"},{default:A(()=>[v(r,{icon:"vuesax-linear:document-text",size:"16"}),ae(" تیکتهای پشتیبانی ")]),_:1})]),e("div",He,[e("div",Pe,[e("span",Ye,h(n.conversations.length),1),Ee]),e("div",Ge,[e("span",Je,h($.value),1),Qe])]),e("div",We,[v(r,{icon:"vuesax-linear:search-normal-1",class:"admin-sidebar__search-icon"}),v(M,{value:m.value,"onUpdate:value":a[2]||(a[2]=p=>m.value=p),placeHolder:"جستجو در کاربران یا پیامها...",class:"admin-search-input"},null,8,["value"]),m.value.trim()?(l(),d("button",{key:0,type:"button",class:"admin-sidebar__search-clear",onClick:a[3]||(a[3]=p=>m.value="")}," × ")):T("",!0)])]),e("div",Xe,[n.loading?(l(),d("div",Ze,[v(E(Be))])):(l(),d(N,{key:1},[(l(!0),d(N,null,ie(g.value,p=>(l(),d("button",{key:p.id,type:"button",class:L(["admin-room-card",[n.activeConversationId===p.id?"admin-room-card--active":"",p.unread_by_admin>0?"admin-room-card--unread":""]]),onClick:K=>n.$emit("select",p.id)},[e("div",tt,[k(p)?(l(),d("img",{key:0,src:k(p),alt:E(Y)(p),class:"admin-room-card__avatar-img"},null,8,st)):(l(),d("span",nt,h(C(p)),1))]),e("div",at,[e("div",ot,[e("h3",it,h(E(Y)(p)),1),e("span",lt,h(x(p)),1)]),e("div",rt,[e("p",dt,h(p.last_message_preview||"پیامی وجود ندارد"),1),p.unread_by_admin>0?(l(),d("span",ct,h(p.unread_by_admin>99?"99+":p.unread_by_admin),1)):T("",!0)])])],10,et))),128)),n.conversations.length?g.value.length?T("",!0):(l(),d("div",vt,[e("div",ht,[v(r,{icon:"vuesax-linear:message-question"})]),bt,gt])):(l(),d("div",ut,[e("div",_t,[v(r,{icon:"vuesax-linear:message-question"})]),mt,pt]))],64))])],2)],64)}}});const ft=ye(yt,[["__scopeId","data-v-94861bea"]]),wt={class:"shrink-0 border-b border-zinc-200 bg-white/90 px-4 py-4 backdrop-blur md:px-6"},$t={class:"flex items-center gap-3"},kt=e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5",viewBox:"0 0 24 24",fill:"none"},[e("path",{d:"M4 7h16M4 12h16M4 17h16",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1),Ct={class:"min-w-0 flex-1"},Tt={class:"truncate text-base font-black text-zinc-900 md:text-lg"},xt={key:0,class:"truncate text-xs text-zinc-500 mt-0.5"},St=G({__name:"AdminSupportHeader",props:{title:{},subtitle:{}},emits:["toggle-mobile-list"],setup(w){return(f,m)=>{const _=Z;return l(),d("header",wt,[e("div",$t,[v(_,{type:"button",class:"flex h-11 w-11 items-center justify-center rounded-2xl border border-zinc-200 bg-white text-zinc-700 md:hidden aspect-square",onClick:m[0]||(m[0]=g=>f.$emit("toggle-mobile-list"))},{default:A(()=>[kt]),_:1}),e("div",Ct,[e("h1",Tt,h(f.title),1),f.subtitle?(l(),d("p",xt,h(f.subtitle),1)):T("",!0)])])])}}}),J=w=>(pe("data-v-3837bd56"),w=w(),ve(),w),Bt={class:"admin-messages-wrap"},Mt={key:0,class:"support-jump-wrap"},Dt={key:0,class:"admin-messages-empty"},It=J(()=>e("div",{class:"admin-messages-empty__icon"},"💬",-1)),Rt=J(()=>e("div",{class:"admin-messages-empty__title"},"در حال دریافت پیامها...",-1)),At=[It,Rt],Ft={class:"admin-messages-list"},Vt={class:"admin-day-sticky"},zt={class:"admin-day-chip"},Lt={class:"admin-day-messages"},Nt=["data-message-id"],qt={key:0,class:"admin-message-avatar"},Kt=["onClick","onKeydown"],Ut=J(()=>e("div",{class:"admin-message__reply-line"},null,-1)),Ot={key:0,class:"admin-message__reply-thumb"},jt=["src"],Ht={class:"admin-message__reply-content"},Pt={class:"admin-message__reply-title"},Yt={class:"admin-message__reply-text"},Et={key:1,class:"admin-bubble__attachments"},Gt=["data-preview-url","onClick"],Jt=["src","alt","onLoad"],Qt=J(()=>e("div",{class:"admin-bubble__image-mask"},"پیشنمایش",-1)),Wt={key:2,class:"admin-bubble__attachments"},Xt=["src"],Zt={key:3,class:"admin-bubble__attachments"},es=["href"],ts={key:4,class:"admin-bubble__text"},ss=J(()=>e("div",{class:"admin-reply-button__icon"},"↩",-1)),ns=G({__name:"AdminSupportMessages",props:{messages:{},loading:{type:Boolean}},emits:["reply"],setup(w,{expose:f,emit:m}){const _=w,g=y(null),$=y(!0),k=y(0),C=y(""),x=y(null);let n=null,a=null;const r=t=>t.sender_type==="admin",s=t=>t?le(t):"",S=t=>{t||(C.value="")},M=t=>{t&&(C.value=s(t))},p=t=>new Intl.DateTimeFormat("fa-IR",{hour:"2-digit",minute:"2-digit"}).format(new Date(t)),K=t=>{const o=new Date(t.created_at);return Number.isNaN(o.getTime())?new Date:o},ee=t=>{const o=t.getFullYear(),b=String(t.getMonth()+1).padStart(2,"0"),D=String(t.getDate()).padStart(2,"0");return`${o}-${b}-${D}`},U=(t,o)=>t.getFullYear()===o.getFullYear()&&t.getMonth()===o.getMonth()&&t.getDate()===o.getDate(),Q=t=>{const o=new Date,b=new Date;return b.setDate(b.getDate()-1),U(t,o)?"امروز":U(t,b)?"دیروز":new Intl.DateTimeFormat("fa-IR",{year:"numeric",month:"long",day:"numeric",weekday:"long"}).format(t)},W=F(()=>{const t=[];for(const o of _.messages){const b=K(o),D=ee(b),I=t[t.length-1];!I||I.dayKey!==D?t.push({dayKey:D,label:Q(b),messages:[o]}):I.messages.push(o)}return t}),te=F(()=>_.messages.length>0&&!$.value),se=()=>{const t=g.value;return t?t.scrollHeight-t.clientHeight-t.scrollTop<120:!0},ne=(t=!0)=>{const o=g.value;o&&(o.scrollTo({top:o.scrollHeight+9999,behavior:t?"smooth":"auto"}),$.value=!0,k.value=0)},O=(t=!0,o=80)=>{n!==null&&window.clearTimeout(n),n=window.setTimeout(()=>{requestAnimationFrame(()=>{ne(t),n=null})},o)},X=(t=!0)=>{O(t,t?80:0)},c=t=>{var o;return t.reply_to_id||((o=t.reply_to)==null?void 0:o.id)||null},u=t=>{const o=g.value;if(!o||!t)return;const b=o.querySelector(`[data-message-id="${t}"]`);if(!b)return;const D=o.getBoundingClientRect(),I=b.getBoundingClientRect(),z=I.top-D.top+o.scrollTop-o.clientHeight/2+I.height/2;o.scrollTo({top:Math.max(0,z),behavior:"smooth"}),x.value=t,a!==null&&window.clearTimeout(a),a=window.setTimeout(()=>{x.value=null,a=null},1600)},B=t=>{const o=c(t);o&&u(o)},j=t=>{!$.value&&!r(t)||O(!1,0)},V=()=>{const t=se();$.value=t,t&&(k.value=0)};return he(()=>_.messages.map(t=>t.id).join("|"),async(t,o)=>{if(!g.value)return;const b=o?o.split("|").filter(Boolean):[],D=t?t.split("|").filter(Boolean):[];if(await de(),b.length===0&&D.length>0){O(!1,0);return}if(D.length>b.length){const I=new Set(b),z=_.messages.filter(R=>!I.has(R.id));if(!z.length)return;const H=z.some(R=>r(R)),i=z.filter(R=>!r(R)).length;H||$.value?O(!0,40):i>0&&(k.value+=i)}},{immediate:!0}),be(()=>{n!==null&&window.clearTimeout(n),a!==null&&window.clearTimeout(a)}),f({scrollToBottom:X,scrollToMessage:u}),(t,o)=>{const b=me,D=Ve,I=ze,z=Z;return l(),d("div",Bt,[v(Ie,{name:"fade"},{default:A(()=>[te.value?(l(),d("div",Mt,[v(D,{count:k.value>0?k.value>99?"99+":k.value:0,"show-zero":!1,offset:[-6,6],class:"support-jump-badge-wrap"},{default:A(()=>[e("button",{type:"button",class:"support-jump-button",onClick:o[0]||(o[0]=H=>X(!0))},[v(b,{icon:"vuesax-linear:arrow-down-1"})])]),_:1},8,["count"])])):T("",!0)]),_:1}),e("div",{ref_key:"scrollContainer",ref:g,class:"admin-messages",onScroll:V},[t.loading&&t.messages.length===0?(l(),d("div",Dt,At)):(l(),d(N,{key:1},[C.value?(l(),re(I,{key:0,src:C.value,class:"admin-hidden-preview-image",preview:{visible:!!C.value,mask:"پیشنمایش",onVisibleChange:S}},null,8,["src","preview"])):T("",!0),e("div",Ft,[(l(!0),d(N,null,ie(W.value,H=>(l(),d("section",{key:H.dayKey,class:"admin-day-group"},[e("div",Vt,[e("div",zt,h(H.label),1)]),e("div",Lt,[(l(!0),d(N,null,ie(H.messages,i=>(l(),d("div",{key:i.id,"data-message-id":i.id,class:L(["admin-message-row",[r(i)?"admin-message-row--out":"admin-message-row--in",x.value===i.id?"admin-message-row--highlight":""]])},[e("div",{class:L(["admin-message-row__inner",r(i)?"admin-message-row__inner--out":""])},[r(i)?T("",!0):(l(),d("div",qt,[v(b,{icon:"vuesax-linear:profile"})])),e("div",{class:L(["admin-bubble",[r(i)?"admin-bubble--out":"admin-bubble--in",i.reply_to?"admin-bubble--has-reply":""]])},[i.reply_to?(l(),d("div",{key:0,class:"admin-message__reply admin-message__reply--clickable",role:"button",tabindex:"0",onClick:oe(R=>B(i),["stop"]),onKeydown:Re(oe(R=>B(i),["prevent"]),["enter"])},[Ut,i.reply_to.message_type==="image"&&i.reply_to.file_url?(l(),d("div",Ot,[e("img",{src:s(i.reply_to.file_url),alt:"reply image"},null,8,jt)])):T("",!0),e("div",Ht,[e("div",Pt,h(E(ue)(i.reply_to.sender_type)),1),e("div",Yt,h(E(_e)(i.reply_to)),1)])],40,Kt)):T("",!0),i.message_type==="image"&&i.file_url?(l(),d("div",Et,[e("div",{class:"admin-bubble__image-wrap","data-preview-url":s(i.file_url),onClick:R=>M(i.file_url)},[e("img",{src:s(i.file_url),alt:i.file_name||"image",class:"admin-bubble__image",onLoad:R=>j(i)},null,40,Jt),Qt],8,Gt)])):i.message_type==="audio"&&i.file_url?(l(),d("div",Wt,[e("div",{class:L(["admin-bubble__audio",r(i)?"admin-bubble__audio--out":"admin-bubble__audio--in"])},[e("audio",{src:s(i.file_url),controls:"",class:"admin-bubble__audio-el"},null,8,Xt)],2)])):i.message_type==="file"&&i.file_url?(l(),d("div",Zt,[e("a",{href:s(i.file_url),target:"_blank",class:"admin-bubble__file-link"},h(i.file_name||"دانلود فایل"),9,es)])):T("",!0),i.content?(l(),d("p",ts,h(i.content),1)):T("",!0),e("div",{class:L(["admin-bubble__meta",r(i)?"admin-bubble__meta--out":"admin-bubble__meta--in"])},[e("span",null,h(p(i.created_at)),1)],2)],2),v(z,{class:"admin-reply-button",title:"فوروارد",onClick:oe(R=>m("reply",i),["stop"])},{default:A(()=>[ss]),_:2},1032,["onClick"])],2)],10,Nt))),128))])]))),128))])],64))],544)])}}});const as=ye(ns,[["__scopeId","data-v-3837bd56"]]),os={class:"admin-composer"},is={class:"admin-composer__container"},ls={class:"admin-composer__panel"},rs={key:0,class:"admin-composer__reply-preview"},ds=e("div",{class:"admin-composer__reply-line"},null,-1),cs={key:0,class:"admin-composer__reply-thumb"},us=["src","alt"],_s={class:"admin-composer__reply-content"},ms={class:"admin-composer__reply-title"},ps={class:"admin-composer__reply-text"},vs={class:"admin-composer__row"},hs={class:"admin-composer__input-shell"},bs=["value","disabled"],gs={class:"admin-composer__actions !p-0"},ys=G({__name:"AdminSupportComposer",props:{modelValue:{},disabled:{type:Boolean},sending:{type:Boolean},replyTo:{}},emits:["update:modelValue","send","cancel-reply"],setup(w,{emit:f}){const m=w,_=y(null),g=s=>s?le(s):"",$=F(()=>m.replyTo?ue(m.replyTo.sender_type):""),k=F(()=>m.replyTo?_e(m.replyTo):""),C=()=>{const s=_.value;s&&(s.style.height="auto",s.style.height=`${Math.min(s.scrollHeight,144)}px`)},x=()=>{var s;(s=_.value)==null||s.focus()},n=s=>{const S=s.target;f("update:modelValue",S.value),C()},a=s=>{s.key!=="Enter"||s.shiftKey||(s.preventDefault(),r())},r=()=>{m.disabled||m.sending||!m.modelValue.trim()||f("send")};return he(()=>m.modelValue,()=>de(C)),ge(()=>{C(),x()}),(s,S)=>{const M=Z;return l(),d("div",os,[e("div",is,[e("div",ls,[s.replyTo?(l(),d("div",rs,[ds,s.replyTo.message_type==="image"&&s.replyTo.file_url?(l(),d("div",cs,[e("img",{src:g(s.replyTo.file_url),alt:s.replyTo.file_name||"reply image"},null,8,us)])):T("",!0),e("div",_s,[e("div",ms,"فوروارد از "+h($.value),1),e("div",ps,h(k.value),1)]),e("button",{type:"button",class:"admin-composer__reply-close",onClick:S[0]||(S[0]=p=>f("cancel-reply"))}," × ")])):T("",!0),e("div",vs,[e("div",hs,[e("textarea",{ref_key:"textareaRef",ref:_,value:s.modelValue,disabled:s.disabled,rows:"1",placeholder:"پیامت را بنویس...",class:"admin-composer-textarea w-full resize-none overflow-y-auto bg-transparent px-2 py-[10px] text-sm leading-7 outline-none !text-[16px]",onInput:n,onKeydown:a},null,40,bs)]),e("div",gs,[v(M,{type:"primary",icon:"vuesax-linear:direct-right",class:"admin-send-btn !p-0",loading:s.sending,disabled:s.disabled||s.sending||!s.modelValue.trim(),onClick:r},null,8,["loading","disabled"])])])])])])}}});const fs={class:"admin-support-shell !rounded-xl"},ws={class:"admin-support-content"},$s=e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-5 w-5",viewBox:"0 0 24 24",fill:"none"},[e("path",{d:"M3 7h18M3 12h18M3 17h18",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1),ks=[$s],Cs={key:2,class:"admin-empty-pane"},Ts={class:"text-center"},xs=e("div",{class:"mb-4 text-4xl"},"💬",-1),Ss={class:"text-xl font-black text-zinc-900"},Bs={class:"mt-2 text-sm text-zinc-500"},mn=G({__name:"index",setup(w){const f=Ae(),m=y([]),_=y([]),g=y(null),$=y(!1),k=y(!1),C=y(!1),x=y(""),n=y(null),a=y(!1),r=y(null);let s=null,S=null;const M=F(()=>m.value.find(c=>c.id===g.value)||null),p=F(()=>M.value?Y(M.value):"");async function K(){$.value=!0;try{m.value=await we()}finally{$.value=!1}}async function ee(c){k.value=!0;try{_.value=await Ce(c),await ce(c);const u=m.value.find(B=>B.id===c);u&&(u.unread_by_admin=0),U()}finally{k.value=!1}}function U(){de(()=>{var c;(c=r.value)==null||c.scrollToBottom(!1)})}function Q(c){const u=_.value.findIndex(B=>B.id===c.id);if(u!==-1){_.value[u]=c;return}_.value.push(c)}function W(){const c=new Set;_.value=_.value.filter(u=>c.has(u.id)?!1:(c.add(u.id),!0))}function te(c){s&&(P.removeChannel(s),s=null),s=P.channel(`admin-support-${c}`).on("postgres_changes",{event:"INSERT",schema:"public",table:"support_messages",filter:`conversation_id=eq.${c}`},async u=>{const B=Te(xe(u.new),_.value);Q(B),W(),B.sender_type==="user"&&await ce(c),U()}).subscribe()}function se(){S=P.channel("admin-support-conversations").on("postgres_changes",{event:"*",schema:"public",table:"support_conversations"},async()=>{await K()}).subscribe()}async function ne(c){g.value=c,a.value=!1,n.value=null,x.value="",await ee(c),te(c)}function O(c){n.value=$e(c)}async function X(){var u,B;const c=(u=f.userInfo)==null?void 0:u.id;if(!(!c||!g.value||!x.value.trim())){C.value=!0;try{const j=await ke({conversationId:g.value,adminId:c,content:x.value.trim(),replyToId:((B=n.value)==null?void 0:B.id)||null});Q(j),W(),x.value="",n.value=null,U(),await K()}catch{Fe.error("خطا در ارسال پاسخ")}finally{C.value=!1}}}return ge(async()=>{await K(),se()}),be(()=>{s&&P.removeChannel(s),S&&P.removeChannel(S)}),(c,u)=>{const B=fe;return l(),re(B,{class:"support-style admin-support-card !h-[79vh] md:!h-[92vh]"},{default:A(()=>{var j;return[e("div",fs,[v(ft,{conversations:m.value,"active-conversation-id":g.value,"mobile-open":a.value,loading:$.value,onSelect:ne,onCloseMobile:u[0]||(u[0]=V=>a.value=!1)},null,8,["conversations","active-conversation-id","mobile-open","loading"]),e("div",ws,[!M.value&&!a.value?(l(),d("button",{key:0,type:"button",class:"admin-mobile-sidebar-trigger md:hidden",onClick:u[1]||(u[1]=V=>a.value=!0)},ks)):T("",!0),M.value?(l(),d(N,{key:1},[v(St,{title:p.value,subtitle:((j=M.value.users)==null?void 0:j.phone)||"",onToggleMobileList:u[2]||(u[2]=V=>a.value=!a.value)},null,8,["title","subtitle"]),v(as,{ref_key:"messagesRef",ref:r,messages:_.value,loading:k.value,onReply:O},null,8,["messages","loading"]),v(ys,{modelValue:x.value,"onUpdate:modelValue":u[3]||(u[3]=V=>x.value=V),sending:C.value,"reply-to":n.value,onSend:X,onCancelReply:u[4]||(u[4]=V=>n.value=null)},null,8,["modelValue","sending","reply-to"])],64)):(l(),d("div",Cs,[e("div",Ts,[xs,e("h2",Ss,h($.value?"در حال دریافت گفتگوها...":"گفتگو را انتخاب کن"),1),e("p",Bs,h($.value?"چند لحظه صبر کن":m.value.length?"از لیست گفتگوها یک روم را باز کن":"فعلاً گفتگویی وجود ندارد"),1)])]))])])]}),_:1})}}});export{mn as default};
|