@mirantes-micro/foundation-design-system 1.2.198 → 1.2.199

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -553,7 +553,7 @@
553
553
  }
554
554
  }
555
555
  }
556
- `;var NP="https://d1gw7mldc0y49f.cloudfront.net/user/0199eecc-280f-77ba-84e2-5a56e103d07f/1762925823474-8b5b313fd51538b26f1bfb52cfcfd165.jpg",eq=(e,t,o)=>{var s,i,c,d,l,m,p,u,g,f;if(!((i=(s=e.participants)==null?void 0:s.length)!=null&&i))return z(y({},e),{otherParticipant:null,isMuted:false,isArchived:false,isFavorited:false,isPinned:false,isAdmin:false});let r=null,n=null;for(let v of (c=e.participants)!=null?c:[]){let h=(d=v.users)==null?void 0:d[0],b=v.page;(h==null?void 0:h.id)===t&&!o||(b==null?void 0:b.id)===t&&o?r=v:e.isGroup||(h?n=z(y({},h),{avatar:(l=h.avatar)!=null?l:NP,isAdmin:v.role==="ADMIN"||v.role==="OWNER",isOnline:false}):b&&(n=z(y({},b),{avatar:(m=b.logo)!=null?m:NP,isAdmin:v.role==="ADMIN"||v.role==="OWNER"})));}let a=(r==null?void 0:r.role)==="ADMIN"||(r==null?void 0:r.role)==="OWNER";return z(y({},e),{otherParticipant:n,isMuted:(p=r==null?void 0:r.isMuted)!=null?p:false,isArchived:(u=r==null?void 0:r.isArchived)!=null?u:false,isFavorited:(g=r==null?void 0:r.isFavorited)!=null?g:false,isPinned:(f=r==null?void 0:r.isPinned)!=null?f:false,isAdmin:a})},tq=e=>[...e].sort((t,o)=>{var a,s,i,c;if(t.isPinned&&!o.isPinned)return -1;if(!t.isPinned&&o.isPinned)return 1;let r=new Date((s=(a=t.message)==null?void 0:a.createdAt)!=null?s:0).getTime();return new Date((c=(i=o.message)==null?void 0:i.createdAt)!=null?c:0).getTime()-r}),Fn=e=>{var w,C,N;let{chatApiUrl:t,user:o,page:r,chatForPage:n}=I(),a=n?(w=r==null?void 0:r.id)!=null?w:"":(C=o==null?void 0:o.id)!=null?C:"",s=e==null?void 0:e.chatHeaderOption,i=e==null?void 0:e.searchQuery,c=!!((N=i==null?void 0:i.trim())!=null&&N.length),d=["conversations",a,s];c&&d.push(i);let l=P=>Q(void 0,[P],function*({pageParam:A=1}){var H,D,G,V,L,F,O;let M={};s==="filter-archived"?M.isArchived=true:s==="filter-favorites"?M.isFavorited=true:s==="filter-groups"?M.isGroup=true:s==="filter-muted"?M.isMuted=true:s==="filter-pinned"?M.isPinned=true:s==="filter-unread"&&(M.isRead=false),c&&(M.name=i);let S={userId:a,options:y({page:A,perPage:10},Object.keys(M).length>0?{filter:M}:{})},E=yield t9__default.default(t!=null?t:"",PP,S,{"x-access-token":(H=o==null?void 0:o.accessToken)!=null?H:""}),T=(D=E==null?void 0:E.getConversationsByUser)!=null?D:null,k=((G=T==null?void 0:T.data)!=null?G:[]).map(B=>eq(B,a,n!=null?n:false));return {data:k!=null?k:[],nextPage:((L=(V=T==null?void 0:T.meta)==null?void 0:V.currentPage)!=null?L:0)+1,lastPage:(O=(F=T==null?void 0:T.meta)==null?void 0:F.lastPage)!=null?O:1}}),{data:m,isLoading:p,fetchNextPage:u,hasNextPage:g,refetch:f}=ut({queryKey:d,queryFn:l,initialPageParam:1,enabled:!!a,staleTime:1/0,refetchOnWindowFocus:true,getNextPageParam:A=>{if(!(!A||typeof A.nextPage!="number"||typeof A.lastPage!="number"))return A.nextPage<=A.lastPage?A.nextPage:void 0}}),v=tq(m!=null&&m.pages&&Array.isArray(m.pages)?m.pages.flatMap(A=>A!=null&&A.data&&Array.isArray(A.data)?A.data:[]):[]),h=A=>!!A&&v.some(P=>(P==null?void 0:P.id)===A),b=A=>{var M;if(!A)return;let P=v.find(S=>{var E,T;return !((E=S.isGroup)!=null&&E)&&((T=S.participants)!=null?T:[]).some(k=>{var H;return ((H=k.users)!=null?H:[]).some(D=>D.id===A)})});return (M=P==null?void 0:P.id)!=null?M:void 0},x=v.filter(A=>{var P;return (P=A==null?void 0:A.isGroup)!=null?P:false}).length;return {conversations:v,isGettingConversations:p,fetchNextPage:u,hasNextPage:g,userId:a,conversationExists:h,getConversationIdByUser:b,totalGroups:x,refetch:f}};function rq(e,t){let o=X.useRef(null);return X.useCallback((...n)=>{o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{e(...n);},t);},[e,t])}function IP(){let{totalGroups:e}=Fn(),{onSelectChatHeaderOption:t,chatHeaderOption:o}=ve(),{locale:r}=I(),n=X.useRef({}),a=X.useRef(null),s=rq(d=>{t==null||t(d);},300),i=[{id:"filter-all",label:q(r,"chat.filter.all")},{id:"filter-unread",label:q(r,"chat.filter.unread")},{id:"filter-favorites",label:q(r,"chat.filter.favorites")},{id:"filter-archived",label:q(r,"chat.filter.archived")},{id:"filter-groups",label:e>0?`${q(r,"chat.filter.groups")} (${e})`:q(r,"chat.filter.groups")}],c=d=>{var p,u;let l=i.map(g=>n.current[g.id]).filter(Boolean);if(!l.length)return;let m=l.findIndex(g=>g===document.activeElement);if(d.key==="ArrowRight"){let g=(m+1)%l.length,f=i[g];(p=l[g])==null||p.focus(),s(f.id),d.preventDefault();}if(d.key==="ArrowLeft"){let g=(m-1+l.length)%l.length,f=i[g];(u=l[g])==null||u.focus(),s(f.id),d.preventDefault();}};return X.useEffect(()=>{let d=o?n.current[o]:null;d&&d.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"});},[o]),X.useEffect(()=>{let d=a.current;if(!d)return;let l=0,m=0,p=g=>{l=g.touches[0].clientX;},u=g=>{m=g.changedTouches[0].clientX;let f=m-l;if(Math.abs(f)>50){if(!i.map(b=>n.current[b.id]).filter(Boolean).length)return;let h=i.findIndex(b=>b.id===o);if(f<0){let b=(h+1)%i.length;s(i[b].id);}else {let b=(h-1+i.length)%i.length;s(i[b].id);}}};return d.addEventListener("touchstart",p,{passive:true}),d.addEventListener("touchend",u),()=>{d.removeEventListener("touchstart",p),d.removeEventListener("touchend",u);}},[o,i,s]),X__namespace.default.createElement("div",{ref:a,className:"w-full overflow-x-auto flex gap-3 py-1 px-1 snap-x snap-mandatory touch-pan-x custom-scrollbar-hover",role:"tablist","aria-label":"Chat filters",onKeyDown:c,style:{WebkitOverflowScrolling:"touch"}},i.map(d=>X__namespace.default.createElement(ie,{key:d.id,ref:l=>n.current[d.id]=l,onClick:()=>s(d.id),label:d.label,role:"tab","aria-selected":o===d.id,tabIndex:o===d.id?0:-1,className:U("h-[1.875rem] text-[0.875rem] whitespace-nowrap rounded-full px-4 snap-start",o===d.id?"font-bold text-white bg-primary":"text-[#687588] bg-transparent")})))}function B1(){return X__namespace.default.createElement("div",{className:"w-full h-[1px] bg-[#EEEEEE]"})}function EP(){let{chatHeaderOption:e}=ve();return X__namespace.default.createElement("div",{className:"flex flex-col gap-[0.625rem]"},X__namespace.default.createElement(Bu,null),e==="add-participant"?null:X__namespace.default.createElement(Gu,null),e==="add-participant"?null:X__namespace.default.createElement(IP,null),e==="add-participant"?null:X__namespace.default.createElement(B1,null))}function LP(){let{chatHeaderOption:e,onSelectChatHeaderOption:t,onSelectMessageSubject:o,subject:r}=ve(),{isMobile:n}=Oe(),{totalGroups:a}=Fn(),{locale:s}=I(),[i,c]=usehooks.useToggle(false),[d,l]=usehooks.useToggle(false),m=X.useRef(null);X.useEffect(()=>{let v=h=>{m.current&&!m.current.contains(h.target)&&(c(false),l(false));};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);let p=[{id:"filter-all",label:q(s,"chat.filter.main")},{id:"filter-unread",label:q(s,"chat.filter.unread")},{id:"filter-favorites",label:q(s,"chat.filter.favorites")},{id:"filter-archived",label:q(s,"chat.filter.archived")},{id:"filter-groups",label:a>0?`${q(s,"chat.filter.groups")} (${a})`:q(s,"chat.filter.groups")},{id:"filter-spam",label:q(s,"chat.filter.spam")}],u=[{id:"service-request",label:q(s,"chat.filter.service-request")},{id:"service-request-demo",label:q(s,"chat.filter.service-demo")},{id:"support",label:q(s,"chat.filter.service-support")},{id:"careers",label:q(s,"chat.filter.service-careers")},{id:"other",label:q(s,"chat.filter.service-other")}],g=()=>{let v=p.find(h=>h.id===e);return v?v.label:q(s,"chat.filter.main")},f=()=>{if(!r)return q(s,"subject.title");let v=u.find(h=>h.id===r);return v==null?void 0:v.label};return n?X__namespace.default.createElement("div",{className:"w-full pb-1",ref:m},X__namespace.default.createElement(react$3.Swiper,{slidesPerView:"auto",spaceBetween:8,className:"w-full"},p.map(v=>X__namespace.default.createElement(react$3.SwiperSlide,{key:v.id,style:{width:"auto"}},X__namespace.default.createElement("button",{className:Tt("px-3 py-1 rounded-full text-[0.875rem] font-normal transition whitespace-nowrap",e===v.id?"bg-[#0B89CE1A] text-[#0B89CE] font-bold":"bg-white text-[#687588] border-[#E2E8F0] hover:text-[#0B89CE] hover:border-[#0B89CE]"),onClick:()=>{t==null||t(v.id);}},v.label))))):X__namespace.default.createElement("div",{className:"w-full flex items-center gap-[0.4rem] relative",ref:m},X__namespace.default.createElement("div",{className:"relative"},X__namespace.default.createElement(ie,{onClick:()=>{c(),l(false);},className:Tt("flex text-nowrap items-center justify-between gap-[0.5rem] rounded-[1rem] text-[0.875rem] font-bold","px-[1rem] py-[0.25rem] h-[1.875rem] w-auto",i?"bg-[#0B89CE1A] text-[#0B89CE]":"bg-transparent text-[#A0AEC0] hover:bg-[#0B89CE0A]"),label:g(),rightElement:i?X__namespace.default.createElement(lucideReact.ChevronUp,{size:16,className:"shrink-0"}):X__namespace.default.createElement(lucideReact.ChevronDown,{size:16,className:"shrink-0"})}),i&&X__namespace.default.createElement("div",{className:"absolute left-0 top-[2rem] w-[8rem] bg-white shadow-lg rounded-[1rem] p-[1rem] flex flex-col gap-[0.5rem] border z-10"},p.map(v=>X__namespace.default.createElement("button",{key:v.id,className:Tt("w-full font-medium text-[0.875rem] text-left",e===v.id?"text-[#0B89CE]":"text-[#687588] hover:text-[#0B89CE]"),onClick:()=>{t==null||t(v.id),c(false);}},v.label)))),X__namespace.default.createElement("div",{className:"relative"},X__namespace.default.createElement(ie,{onClick:()=>{l(),c(false);},className:Tt("flex items-center text-nowrap justify-between gap-[0.5rem] rounded-[1rem] text-[0.875rem] font-bold","px-[1rem] py-[0.25rem] h-[1.875rem] w-auto",d?"bg-[#0B89CE1A] text-[#0B89CE]":"bg-transparent text-[#A0AEC0] hover:bg-[#0B89CE0A]"),label:f(),rightElement:d?X__namespace.default.createElement(lucideReact.ChevronUp,{size:16,className:"shrink-0"}):X__namespace.default.createElement(lucideReact.ChevronDown,{size:16,className:"shrink-0"})}),d&&X__namespace.default.createElement("div",{className:"absolute -left-6 top-[2rem] w-[12rem] bg-white shadow-lg rounded-[1rem] p-[1rem] flex flex-col gap-[0.5rem] border z-10"},u.map(v=>X__namespace.default.createElement("button",{key:v.id,className:Tt("w-full font-medium text-[0.875rem] text-left",r===v.id?"text-[#0B89CE]":"text-[#687588] hover:text-[#0B89CE]"),onClick:()=>{o==null||o(v.id),l(false);}},v.label)))))}var cq=e=>{let t={unreadChats:{},messages:{},draftMessages:{}};for(let o in e.unreadChats||{}){let r=o.startsWith("conv-")||o.startsWith("temp-")?o:`temp-${o}`;t.unreadChats[r]=e.unreadChats[o];}for(let o in e.messages||{}){let r=o.startsWith("conv-")||o.startsWith("temp-")?o:`temp-${o}`;t.messages[r]=e.messages[o];}for(let o in e.draftMessages||{}){let r=o.startsWith("conv-")||o.startsWith("temp-")?o:`temp-${o}`;t.draftMessages[r]=e.draftMessages[o];}return t},mq=()=>{try{let e=localStorage.getItem("pageChatAppState");if(!e)return {};let t=JSON.parse(e);return Object.keys(t.messages||{}).some(r=>r.startsWith("conv-"))||Object.keys(t.draftMessages||{}).some(r=>r.startsWith("conv-"))?{unreadChats:t.unreadChats||{},messages:t.messages||{},draftMessages:t.draftMessages||{}}:cq(t)}catch(e){return {}}},Ra=e=>{let{unreadChats:t,messages:o,draftMessages:r}=e;localStorage.setItem("pageChatAppState",JSON.stringify({unreadChats:t,messages:o,draftMessages:r}));},xt=zustand.create((e,t)=>z(y({},mq()),{apps:[{id:"mirantes-page-chat",component:X__namespace.default.createElement(ie,{className:"rounded-[1rem] p-[0.625rem] h-[2.625rem] w-[2.625rem] bg-[#0B89CE]"},X__namespace.default.createElement(od,null))}],selectedAppId:"mirantes-page-chat",setSelectedApp:o=>e({selectedAppId:o}),chatHeaderOption:"filter-all",onSelectChatHeaderOption:o=>e({chatHeaderOption:o}),searchQuery:void 0,onSearchQuery:o=>e({searchQuery:o}),searchMessage:void 0,onSearchMessage:o=>e({searchMessage:o}),selectedChat:void 0,onSelectChat:o=>e(r=>{var d,l;let n=(d=r.selectedChat)==null?void 0:d.conversationId,a=o==null?void 0:o.conversationId,s=y({},r.draftMessages||{});n&&((l=s[n])==null?void 0:l.trim())===""&&delete s[n];let i=n!==a&&r.forwardMessageIds.length>0,c=y(z(y({},r),{selectedChat:o,draftMessages:s}),i&&{forwardMessageIds:[],forwardTargets:[]});return Ra(c),c}),messages:{},draftMessages:{},setDraftMessage:(o,r)=>e(n=>{let a=y({},n.draftMessages||{});a[o]=r;let s=z(y({},n),{draftMessages:a});return Ra(s),{draftMessages:a}}),addTemporaryMessage:(o,r,n,a)=>e(s=>{var l;let i={id:a||crypto.randomUUID(),type:"temporary",content:r,timestamp:Date.now(),sender:"me",isTemporary:true,attachmentType:n,body:r,createdAt:new Date().toISOString(),senderId:"me"},c=z(y({},s.messages||{}),{[o]:[...((l=s.messages)==null?void 0:l[o])||[],i]}),d=z(y({},s),{messages:c});return Ra(d),{messages:c}}),removeTemporaryMessage:(o,r)=>e(n=>{var i;let a=z(y({},n.messages||{}),{[o]:(((i=n.messages)==null?void 0:i[o])||[]).filter(c=>c.id!==r)}),s=z(y({},n),{messages:a});return Ra(s),{messages:a}}),unreadChats:{},markChatAsRead:o=>e(r=>{let n=o||"",a=y({},r.unreadChats||{});a[n]={count:0,dot:true};let s=z(y({},r),{unreadChats:a});return Ra(s),{unreadChats:a}}),incrementUnread:o=>e(r=>{let n=y({},r.unreadChats||{}),a=n[o]||{count:0};n[o]={count:a.count+1,dot:false};let s=z(y({},r),{unreadChats:n});return Ra(s),{unreadChats:n}}),resetUnread:o=>e(r=>{let n=o||"",a=y({},r.unreadChats||{});a[n]={count:0,dot:false};let s=z(y({},r),{unreadChats:a});return Ra(s),{unreadChats:a}}),clearDot:o=>e(r=>{let n=o||"",a=y({},r.unreadChats||{}),s=a[n]||{count:0,dot:false};a[n]=z(y({},s),{dot:false});let i=z(y({},r),{unreadChats:a});return Ra(i),{unreadChats:a}}),replaceTempConversationId:(o,r)=>e(n=>{let a=y({},n.messages||{}),s=y({},n.draftMessages||{}),i=y({},n.unreadChats||{});a[o]&&(a[r]=a[o],delete a[o]),s[o]&&(s[r]=s[o],delete s[o]),i[o]&&(i[r]=i[o],delete i[o]);let c=z(y({},n),{messages:a,draftMessages:s,unreadChats:i});return Ra(c),c}),selectedMessageIds:[],selectionMode:"all",setSelectionMode:o=>e({selectionMode:o}),selectMessage:o=>e(r=>({selectedMessageIds:r.selectedMessageIds.includes(o)?r.selectedMessageIds.filter(s=>s!==o):[...r.selectedMessageIds,o]})),clearSelectedMessages:()=>e({selectedMessageIds:[],selectionMode:"all"}),deleteSelectedMessages:()=>e(o=>{if(!o.selectedChat)return o;let r=o.selectedChat.conversationId;if(!r)return o;let a=(o.messages[r]||[]).filter(i=>!o.selectedMessageIds.includes(i.id)),s=z(y({},o),{messages:z(y({},o.messages),{[r]:a}),selectedMessageIds:[],selectionMode:"all"});return Ra(s),s}),replyMessage:null,setReplyMessage:o=>e(r=>{let n=z(y({},r),{replyMessage:o});return Ra(n),{replyMessage:o}}),mobileSelectedMessageId:null,setMobileSelectedMessage:o=>e({mobileSelectedMessageId:o}),forwardMessageIds:[],selectForwardMessage:o=>e(r=>({forwardMessageIds:r.forwardMessageIds.includes(o)?r.forwardMessageIds.filter(s=>s!==o):[...r.forwardMessageIds,o]})),clearForwardMessages:()=>e({forwardMessageIds:[]}),forwardTargets:[],selectForwardTarget:o=>e(r=>r.forwardTargets.some(a=>a.userId&&a.userId===o.userId||a.conversationId&&a.conversationId===o.conversationId)||r.forwardTargets.length>=5?r:{forwardTargets:[...r.forwardTargets,o]}),removeForwardTarget:o=>e(r=>({forwardTargets:r.forwardTargets.filter(n=>!(n.userId&&n.userId===o.userId||n.conversationId&&n.conversationId===o.conversationId))})),clearForwardTargets:()=>e({forwardTargets:[]}),resetAll:()=>e(()=>{let o={selectedAppId:"mirantes-page-chat",chatHeaderOption:"filter-all",searchQuery:void 0,searchMessage:void 0,selectedChat:void 0,replyMessage:null,messages:{},draftMessages:{},unreadChats:{},selectedMessageIds:[],selectionMode:"all",mobileSelectedMessageId:null,forwardMessageIds:[],forwardTargets:[]};return localStorage.removeItem("pageChatAppState"),o})}));function zP(){let {locale:e}=I(),{onSelectChatHeaderOption:t,chatHeaderOption:o}=xt(),{isMobile:r}=Oe(),n=o==="new-message"?q(e,"new-message"):q(e,"inbox.title");return X__namespace.default.createElement("div",{className:"w-full flex justify-between items-center !rounded-[1rem]"},X__namespace.default.createElement("div",{className:"flex items-center gap-x-2 flex-1 min-w-0"},o==="new-message"&&X__namespace.default.createElement(ie,{onClick:()=>{t==null||t("filter-all");},leftElement:X__namespace.default.createElement(lucideReact.ChevronLeft,{color:"black",size:20})}),X__namespace.default.createElement("span",{className:U("font-bold text-[#000000]",r?"text-lg":"text-[1.438rem]","truncate")},n)),X__namespace.default.createElement("div",{className:U("flex relative flex-shrink-0",r?"gap-2":"gap-[1rem]")}))}function G1({asPage:e}){let{isMobile:t}=Oe();return X__namespace.default.createElement("div",{className:U(e||t?"flex flex-col gap-2 overflow-x-auto":null)},e?X__namespace.default.createElement(zP,null):X__namespace.default.createElement(Bu,null),X__namespace.default.createElement(Gu,null),X__namespace.default.createElement(LP,null),X__namespace.default.createElement(B1,null))}function k7(e,t){var n;if(!(e!=null&&e.participants)||!(e!=null&&e.ownerId))return false;let o=(n=e==null?void 0:e.participants)==null?void 0:n.find(a=>{var s,i;return ((s=a==null?void 0:a.users)==null?void 0:s.some(c=>(c==null?void 0:c.id)===t))||((i=a==null?void 0:a.page)==null?void 0:i.id)===t}),r=o==null?void 0:o.id;return (e==null?void 0:e.ownerId)===r||(e==null?void 0:e.ownerId)===t}function Hu(e,t,o){var d,l,m;if(!(e!=null&&e.actions))return null;let r=((d=e.sender)==null?void 0:d.name)||"Algu\xE9m",n=e.senderId===o,a="";try{if(e.body){let p=JSON.parse(e.body);(p.targetName||(l=p.target)!=null&&l.name)&&(a=p.targetName||((m=p.target)==null?void 0:m.name));}}catch(p){e.body&&!e.body.includes("{")&&!e.body.includes("}")&&(a=e.body);}let s=t==="pt"?"um participante":t==="fr"?"un participant":"a participant",i=t==="pt"?"um usu\xE1rio":t==="fr"?"un utilisateur":"a user";switch(String(e.actions).trim()){case "left":let p=r!=="Algu\xE9m"?r:e.body&&!e.body.includes("{")&&!e.body.includes("}")?e.body.trim():r;return q(t,"message-action-user-left",{name:p});case "remove":return a&&(a.toLowerCase().trim()===r.toLowerCase().trim()||e.body&&e.body.toLowerCase().trim()===r.toLowerCase().trim())?q(t,"message-action-user-left",{name:r}):n?q(t,"message-action-you-removed",{targetName:a||s}):q(t,"message-action-participant-removed",{name:r,targetName:a||s});case "add":return n?q(t,"message-action-you-added",{targetName:a||s}):q(t,"message-action-participant-added",{name:r,targetName:a||s});case "madeAdmin":return n?q(t,"message-action-you-promoted",{targetName:a||i}):q(t,"message-action-admin-promoted",{name:r,targetName:a||i});case "removedAdmin":return n?q(t,"message-action-you-removed-admin",{targetName:a||i}):q(t,"message-action-admin-removed",{name:r,targetName:a||i});default:return null}}function $m({isChatOpen:e=true,isCompactMode:t=false}){let{locale:o,user:r}=I(),{onlineUsers:n,messageAction:a,newMessages:s}=tr(),{selectedChat:i,onEditGroup:c,messages:d}=ve(),{conversations:l,isGettingConversations:m,userId:p,fetchNextPage:u,hasNextPage:g}=Fn(),[f]=lk__default.default({loading:m,hasNextPage:g,onLoadMore:u,disabled:!g,rootMargin:"0px 0px 200px 0px"}),v=h=>{var b;return (a==null?void 0:a.action)==="MESSAGE_DELETED"&&(a==null?void 0:a.conversationId)===h?{hasDeletedMessages:true,deletedMessagesCount:((b=a.messagesIds)==null?void 0:b.length)||0}:{hasDeletedMessages:false,deletedMessagesCount:0}};return !m&&(l==null?void 0:l.length)===0?X__namespace.default.createElement(Ds,{hasNoChat:true,isChatOpen:e}):X__namespace.default.createElement("div",{className:`
556
+ `;var NP="https://d1gw7mldc0y49f.cloudfront.net/user/0199eecc-280f-77ba-84e2-5a56e103d07f/1762925823474-8b5b313fd51538b26f1bfb52cfcfd165.jpg",eq=(e,t,o)=>{var s,i,c,d,l,m,p,u,g,f;if(!((i=(s=e.participants)==null?void 0:s.length)!=null&&i))return z(y({},e),{otherParticipant:null,isMuted:false,isArchived:false,isFavorited:false,isPinned:false,isAdmin:false});let r=null,n=null;for(let v of (c=e.participants)!=null?c:[]){let h=(d=v.users)==null?void 0:d[0],b=v.page;(h==null?void 0:h.id)===t&&!o||(b==null?void 0:b.id)===t&&o?r=v:e.isGroup||(h?n=z(y({},h),{avatar:(l=h.avatar)!=null?l:NP,isAdmin:v.role==="ADMIN"||v.role==="OWNER",isOnline:false}):b&&(n=z(y({},b),{avatar:(m=b.logo)!=null?m:NP,isAdmin:v.role==="ADMIN"||v.role==="OWNER"})));}let a=(r==null?void 0:r.role)==="ADMIN"||(r==null?void 0:r.role)==="OWNER";return z(y({},e),{otherParticipant:n,isMuted:(p=r==null?void 0:r.isMuted)!=null?p:false,isArchived:(u=r==null?void 0:r.isArchived)!=null?u:false,isFavorited:(g=r==null?void 0:r.isFavorited)!=null?g:false,isPinned:(f=r==null?void 0:r.isPinned)!=null?f:false,isAdmin:a})},tq=e=>[...e].sort((t,o)=>{var a,s,i,c;if(t.isPinned&&!o.isPinned)return -1;if(!t.isPinned&&o.isPinned)return 1;let r=new Date((s=(a=t.message)==null?void 0:a.createdAt)!=null?s:0).getTime();return new Date((c=(i=o.message)==null?void 0:i.createdAt)!=null?c:0).getTime()-r}),Fn=e=>{var w,C,N;let{chatApiUrl:t,user:o,page:r,chatForPage:n}=I(),a=n?(w=r==null?void 0:r.id)!=null?w:"":(C=o==null?void 0:o.id)!=null?C:"",s=e==null?void 0:e.chatHeaderOption,i=e==null?void 0:e.searchQuery,c=!!((N=i==null?void 0:i.trim())!=null&&N.length),d=["conversations",a,s];c&&d.push(i);let l=P=>Q(void 0,[P],function*({pageParam:A=1}){var H,D,G,V,L,F,O;let M={};s==="filter-archived"?M.isArchived=true:s==="filter-favorites"?M.isFavorited=true:s==="filter-groups"?M.isGroup=true:s==="filter-muted"?M.isMuted=true:s==="filter-pinned"?M.isPinned=true:s==="filter-unread"&&(M.isRead=false),c&&(M.name=i);let S={userId:a,options:y({page:A,perPage:10},Object.keys(M).length>0?{filter:M}:{})},E=yield t9__default.default(t!=null?t:"",PP,S,{"x-access-token":(H=o==null?void 0:o.accessToken)!=null?H:""}),T=(D=E==null?void 0:E.getConversationsByUser)!=null?D:null,k=((G=T==null?void 0:T.data)!=null?G:[]).map(B=>eq(B,a,n!=null?n:false));return {data:k!=null?k:[],nextPage:((L=(V=T==null?void 0:T.meta)==null?void 0:V.currentPage)!=null?L:0)+1,lastPage:(O=(F=T==null?void 0:T.meta)==null?void 0:F.lastPage)!=null?O:1}}),{data:m,isLoading:p,fetchNextPage:u,hasNextPage:g,refetch:f}=ut({queryKey:d,queryFn:l,initialPageParam:1,enabled:!!a,staleTime:60*1e3,gcTime:5*60*1e3,getNextPageParam:A=>{if(!(!A||typeof A.nextPage!="number"||typeof A.lastPage!="number"))return A.nextPage<=A.lastPage?A.nextPage:void 0}}),v=tq(m!=null&&m.pages&&Array.isArray(m.pages)?m.pages.flatMap(A=>A!=null&&A.data&&Array.isArray(A.data)?A.data:[]):[]),h=A=>!!A&&v.some(P=>(P==null?void 0:P.id)===A),b=A=>{var M;if(!A)return;let P=v.find(S=>{var E,T;return !((E=S.isGroup)!=null&&E)&&((T=S.participants)!=null?T:[]).some(k=>{var H;return ((H=k.users)!=null?H:[]).some(D=>D.id===A)})});return (M=P==null?void 0:P.id)!=null?M:void 0},x=v.filter(A=>{var P;return (P=A==null?void 0:A.isGroup)!=null?P:false}).length;return {conversations:v,isGettingConversations:p,fetchNextPage:u,hasNextPage:g,userId:a,conversationExists:h,getConversationIdByUser:b,totalGroups:x,refetch:f}};function rq(e,t){let o=X.useRef(null);return X.useCallback((...n)=>{o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{e(...n);},t);},[e,t])}function IP(){let{totalGroups:e}=Fn(),{onSelectChatHeaderOption:t,chatHeaderOption:o}=ve(),{locale:r}=I(),n=X.useRef({}),a=X.useRef(null),s=rq(d=>{t==null||t(d);},300),i=[{id:"filter-all",label:q(r,"chat.filter.all")},{id:"filter-unread",label:q(r,"chat.filter.unread")},{id:"filter-favorites",label:q(r,"chat.filter.favorites")},{id:"filter-archived",label:q(r,"chat.filter.archived")},{id:"filter-groups",label:e>0?`${q(r,"chat.filter.groups")} (${e})`:q(r,"chat.filter.groups")}],c=d=>{var p,u;let l=i.map(g=>n.current[g.id]).filter(Boolean);if(!l.length)return;let m=l.findIndex(g=>g===document.activeElement);if(d.key==="ArrowRight"){let g=(m+1)%l.length,f=i[g];(p=l[g])==null||p.focus(),s(f.id),d.preventDefault();}if(d.key==="ArrowLeft"){let g=(m-1+l.length)%l.length,f=i[g];(u=l[g])==null||u.focus(),s(f.id),d.preventDefault();}};return X.useEffect(()=>{let d=o?n.current[o]:null;d&&d.scrollIntoView({behavior:"smooth",inline:"center",block:"nearest"});},[o]),X.useEffect(()=>{let d=a.current;if(!d)return;let l=0,m=0,p=g=>{l=g.touches[0].clientX;},u=g=>{m=g.changedTouches[0].clientX;let f=m-l;if(Math.abs(f)>50){if(!i.map(b=>n.current[b.id]).filter(Boolean).length)return;let h=i.findIndex(b=>b.id===o);if(f<0){let b=(h+1)%i.length;s(i[b].id);}else {let b=(h-1+i.length)%i.length;s(i[b].id);}}};return d.addEventListener("touchstart",p,{passive:true}),d.addEventListener("touchend",u),()=>{d.removeEventListener("touchstart",p),d.removeEventListener("touchend",u);}},[o,i,s]),X__namespace.default.createElement("div",{ref:a,className:"w-full overflow-x-auto flex gap-3 py-1 px-1 snap-x snap-mandatory touch-pan-x custom-scrollbar-hover",role:"tablist","aria-label":"Chat filters",onKeyDown:c,style:{WebkitOverflowScrolling:"touch"}},i.map(d=>X__namespace.default.createElement(ie,{key:d.id,ref:l=>n.current[d.id]=l,onClick:()=>s(d.id),label:d.label,role:"tab","aria-selected":o===d.id,tabIndex:o===d.id?0:-1,className:U("h-[1.875rem] text-[0.875rem] whitespace-nowrap rounded-full px-4 snap-start",o===d.id?"font-bold text-white bg-primary":"text-[#687588] bg-transparent")})))}function B1(){return X__namespace.default.createElement("div",{className:"w-full h-[1px] bg-[#EEEEEE]"})}function EP(){let{chatHeaderOption:e}=ve();return X__namespace.default.createElement("div",{className:"flex flex-col gap-[0.625rem]"},X__namespace.default.createElement(Bu,null),e==="add-participant"?null:X__namespace.default.createElement(Gu,null),e==="add-participant"?null:X__namespace.default.createElement(IP,null),e==="add-participant"?null:X__namespace.default.createElement(B1,null))}function LP(){let{chatHeaderOption:e,onSelectChatHeaderOption:t,onSelectMessageSubject:o,subject:r}=ve(),{isMobile:n}=Oe(),{totalGroups:a}=Fn(),{locale:s}=I(),[i,c]=usehooks.useToggle(false),[d,l]=usehooks.useToggle(false),m=X.useRef(null);X.useEffect(()=>{let v=h=>{m.current&&!m.current.contains(h.target)&&(c(false),l(false));};return document.addEventListener("mousedown",v),()=>document.removeEventListener("mousedown",v)},[]);let p=[{id:"filter-all",label:q(s,"chat.filter.main")},{id:"filter-unread",label:q(s,"chat.filter.unread")},{id:"filter-favorites",label:q(s,"chat.filter.favorites")},{id:"filter-archived",label:q(s,"chat.filter.archived")},{id:"filter-groups",label:a>0?`${q(s,"chat.filter.groups")} (${a})`:q(s,"chat.filter.groups")},{id:"filter-spam",label:q(s,"chat.filter.spam")}],u=[{id:"service-request",label:q(s,"chat.filter.service-request")},{id:"service-request-demo",label:q(s,"chat.filter.service-demo")},{id:"support",label:q(s,"chat.filter.service-support")},{id:"careers",label:q(s,"chat.filter.service-careers")},{id:"other",label:q(s,"chat.filter.service-other")}],g=()=>{let v=p.find(h=>h.id===e);return v?v.label:q(s,"chat.filter.main")},f=()=>{if(!r)return q(s,"subject.title");let v=u.find(h=>h.id===r);return v==null?void 0:v.label};return n?X__namespace.default.createElement("div",{className:"w-full pb-1",ref:m},X__namespace.default.createElement(react$3.Swiper,{slidesPerView:"auto",spaceBetween:8,className:"w-full"},p.map(v=>X__namespace.default.createElement(react$3.SwiperSlide,{key:v.id,style:{width:"auto"}},X__namespace.default.createElement("button",{className:Tt("px-3 py-1 rounded-full text-[0.875rem] font-normal transition whitespace-nowrap",e===v.id?"bg-[#0B89CE1A] text-[#0B89CE] font-bold":"bg-white text-[#687588] border-[#E2E8F0] hover:text-[#0B89CE] hover:border-[#0B89CE]"),onClick:()=>{t==null||t(v.id);}},v.label))))):X__namespace.default.createElement("div",{className:"w-full flex items-center gap-[0.4rem] relative",ref:m},X__namespace.default.createElement("div",{className:"relative"},X__namespace.default.createElement(ie,{onClick:()=>{c(),l(false);},className:Tt("flex text-nowrap items-center justify-between gap-[0.5rem] rounded-[1rem] text-[0.875rem] font-bold","px-[1rem] py-[0.25rem] h-[1.875rem] w-auto",i?"bg-[#0B89CE1A] text-[#0B89CE]":"bg-transparent text-[#A0AEC0] hover:bg-[#0B89CE0A]"),label:g(),rightElement:i?X__namespace.default.createElement(lucideReact.ChevronUp,{size:16,className:"shrink-0"}):X__namespace.default.createElement(lucideReact.ChevronDown,{size:16,className:"shrink-0"})}),i&&X__namespace.default.createElement("div",{className:"absolute left-0 top-[2rem] w-[8rem] bg-white shadow-lg rounded-[1rem] p-[1rem] flex flex-col gap-[0.5rem] border z-10"},p.map(v=>X__namespace.default.createElement("button",{key:v.id,className:Tt("w-full font-medium text-[0.875rem] text-left",e===v.id?"text-[#0B89CE]":"text-[#687588] hover:text-[#0B89CE]"),onClick:()=>{t==null||t(v.id),c(false);}},v.label)))),X__namespace.default.createElement("div",{className:"relative"},X__namespace.default.createElement(ie,{onClick:()=>{l(),c(false);},className:Tt("flex items-center text-nowrap justify-between gap-[0.5rem] rounded-[1rem] text-[0.875rem] font-bold","px-[1rem] py-[0.25rem] h-[1.875rem] w-auto",d?"bg-[#0B89CE1A] text-[#0B89CE]":"bg-transparent text-[#A0AEC0] hover:bg-[#0B89CE0A]"),label:f(),rightElement:d?X__namespace.default.createElement(lucideReact.ChevronUp,{size:16,className:"shrink-0"}):X__namespace.default.createElement(lucideReact.ChevronDown,{size:16,className:"shrink-0"})}),d&&X__namespace.default.createElement("div",{className:"absolute -left-6 top-[2rem] w-[12rem] bg-white shadow-lg rounded-[1rem] p-[1rem] flex flex-col gap-[0.5rem] border z-10"},u.map(v=>X__namespace.default.createElement("button",{key:v.id,className:Tt("w-full font-medium text-[0.875rem] text-left",r===v.id?"text-[#0B89CE]":"text-[#687588] hover:text-[#0B89CE]"),onClick:()=>{o==null||o(v.id),l(false);}},v.label)))))}var cq=e=>{let t={unreadChats:{},messages:{},draftMessages:{}};for(let o in e.unreadChats||{}){let r=o.startsWith("conv-")||o.startsWith("temp-")?o:`temp-${o}`;t.unreadChats[r]=e.unreadChats[o];}for(let o in e.messages||{}){let r=o.startsWith("conv-")||o.startsWith("temp-")?o:`temp-${o}`;t.messages[r]=e.messages[o];}for(let o in e.draftMessages||{}){let r=o.startsWith("conv-")||o.startsWith("temp-")?o:`temp-${o}`;t.draftMessages[r]=e.draftMessages[o];}return t},mq=()=>{try{let e=localStorage.getItem("pageChatAppState");if(!e)return {};let t=JSON.parse(e);return Object.keys(t.messages||{}).some(r=>r.startsWith("conv-"))||Object.keys(t.draftMessages||{}).some(r=>r.startsWith("conv-"))?{unreadChats:t.unreadChats||{},messages:t.messages||{},draftMessages:t.draftMessages||{}}:cq(t)}catch(e){return {}}},Ra=e=>{let{unreadChats:t,messages:o,draftMessages:r}=e;localStorage.setItem("pageChatAppState",JSON.stringify({unreadChats:t,messages:o,draftMessages:r}));},xt=zustand.create((e,t)=>z(y({},mq()),{apps:[{id:"mirantes-page-chat",component:X__namespace.default.createElement(ie,{className:"rounded-[1rem] p-[0.625rem] h-[2.625rem] w-[2.625rem] bg-[#0B89CE]"},X__namespace.default.createElement(od,null))}],selectedAppId:"mirantes-page-chat",setSelectedApp:o=>e({selectedAppId:o}),chatHeaderOption:"filter-all",onSelectChatHeaderOption:o=>e({chatHeaderOption:o}),searchQuery:void 0,onSearchQuery:o=>e({searchQuery:o}),searchMessage:void 0,onSearchMessage:o=>e({searchMessage:o}),selectedChat:void 0,onSelectChat:o=>e(r=>{var d,l;let n=(d=r.selectedChat)==null?void 0:d.conversationId,a=o==null?void 0:o.conversationId,s=y({},r.draftMessages||{});n&&((l=s[n])==null?void 0:l.trim())===""&&delete s[n];let i=n!==a&&r.forwardMessageIds.length>0,c=y(z(y({},r),{selectedChat:o,draftMessages:s}),i&&{forwardMessageIds:[],forwardTargets:[]});return Ra(c),c}),messages:{},draftMessages:{},setDraftMessage:(o,r)=>e(n=>{let a=y({},n.draftMessages||{});a[o]=r;let s=z(y({},n),{draftMessages:a});return Ra(s),{draftMessages:a}}),addTemporaryMessage:(o,r,n,a)=>e(s=>{var l;let i={id:a||crypto.randomUUID(),type:"temporary",content:r,timestamp:Date.now(),sender:"me",isTemporary:true,attachmentType:n,body:r,createdAt:new Date().toISOString(),senderId:"me"},c=z(y({},s.messages||{}),{[o]:[...((l=s.messages)==null?void 0:l[o])||[],i]}),d=z(y({},s),{messages:c});return Ra(d),{messages:c}}),removeTemporaryMessage:(o,r)=>e(n=>{var i;let a=z(y({},n.messages||{}),{[o]:(((i=n.messages)==null?void 0:i[o])||[]).filter(c=>c.id!==r)}),s=z(y({},n),{messages:a});return Ra(s),{messages:a}}),unreadChats:{},markChatAsRead:o=>e(r=>{let n=o||"",a=y({},r.unreadChats||{});a[n]={count:0,dot:true};let s=z(y({},r),{unreadChats:a});return Ra(s),{unreadChats:a}}),incrementUnread:o=>e(r=>{let n=y({},r.unreadChats||{}),a=n[o]||{count:0};n[o]={count:a.count+1,dot:false};let s=z(y({},r),{unreadChats:n});return Ra(s),{unreadChats:n}}),resetUnread:o=>e(r=>{let n=o||"",a=y({},r.unreadChats||{});a[n]={count:0,dot:false};let s=z(y({},r),{unreadChats:a});return Ra(s),{unreadChats:a}}),clearDot:o=>e(r=>{let n=o||"",a=y({},r.unreadChats||{}),s=a[n]||{count:0,dot:false};a[n]=z(y({},s),{dot:false});let i=z(y({},r),{unreadChats:a});return Ra(i),{unreadChats:a}}),replaceTempConversationId:(o,r)=>e(n=>{let a=y({},n.messages||{}),s=y({},n.draftMessages||{}),i=y({},n.unreadChats||{});a[o]&&(a[r]=a[o],delete a[o]),s[o]&&(s[r]=s[o],delete s[o]),i[o]&&(i[r]=i[o],delete i[o]);let c=z(y({},n),{messages:a,draftMessages:s,unreadChats:i});return Ra(c),c}),selectedMessageIds:[],selectionMode:"all",setSelectionMode:o=>e({selectionMode:o}),selectMessage:o=>e(r=>({selectedMessageIds:r.selectedMessageIds.includes(o)?r.selectedMessageIds.filter(s=>s!==o):[...r.selectedMessageIds,o]})),clearSelectedMessages:()=>e({selectedMessageIds:[],selectionMode:"all"}),deleteSelectedMessages:()=>e(o=>{if(!o.selectedChat)return o;let r=o.selectedChat.conversationId;if(!r)return o;let a=(o.messages[r]||[]).filter(i=>!o.selectedMessageIds.includes(i.id)),s=z(y({},o),{messages:z(y({},o.messages),{[r]:a}),selectedMessageIds:[],selectionMode:"all"});return Ra(s),s}),replyMessage:null,setReplyMessage:o=>e(r=>{let n=z(y({},r),{replyMessage:o});return Ra(n),{replyMessage:o}}),mobileSelectedMessageId:null,setMobileSelectedMessage:o=>e({mobileSelectedMessageId:o}),forwardMessageIds:[],selectForwardMessage:o=>e(r=>({forwardMessageIds:r.forwardMessageIds.includes(o)?r.forwardMessageIds.filter(s=>s!==o):[...r.forwardMessageIds,o]})),clearForwardMessages:()=>e({forwardMessageIds:[]}),forwardTargets:[],selectForwardTarget:o=>e(r=>r.forwardTargets.some(a=>a.userId&&a.userId===o.userId||a.conversationId&&a.conversationId===o.conversationId)||r.forwardTargets.length>=5?r:{forwardTargets:[...r.forwardTargets,o]}),removeForwardTarget:o=>e(r=>({forwardTargets:r.forwardTargets.filter(n=>!(n.userId&&n.userId===o.userId||n.conversationId&&n.conversationId===o.conversationId))})),clearForwardTargets:()=>e({forwardTargets:[]}),resetAll:()=>e(()=>{let o={selectedAppId:"mirantes-page-chat",chatHeaderOption:"filter-all",searchQuery:void 0,searchMessage:void 0,selectedChat:void 0,replyMessage:null,messages:{},draftMessages:{},unreadChats:{},selectedMessageIds:[],selectionMode:"all",mobileSelectedMessageId:null,forwardMessageIds:[],forwardTargets:[]};return localStorage.removeItem("pageChatAppState"),o})}));function zP(){let {locale:e}=I(),{onSelectChatHeaderOption:t,chatHeaderOption:o}=xt(),{isMobile:r}=Oe(),n=o==="new-message"?q(e,"new-message"):q(e,"inbox.title");return X__namespace.default.createElement("div",{className:"w-full flex justify-between items-center !rounded-[1rem]"},X__namespace.default.createElement("div",{className:"flex items-center gap-x-2 flex-1 min-w-0"},o==="new-message"&&X__namespace.default.createElement(ie,{onClick:()=>{t==null||t("filter-all");},leftElement:X__namespace.default.createElement(lucideReact.ChevronLeft,{color:"black",size:20})}),X__namespace.default.createElement("span",{className:U("font-bold text-[#000000]",r?"text-lg":"text-[1.438rem]","truncate")},n)),X__namespace.default.createElement("div",{className:U("flex relative flex-shrink-0",r?"gap-2":"gap-[1rem]")}))}function G1({asPage:e}){let{isMobile:t}=Oe();return X__namespace.default.createElement("div",{className:U(e||t?"flex flex-col gap-2 overflow-x-auto":null)},e?X__namespace.default.createElement(zP,null):X__namespace.default.createElement(Bu,null),X__namespace.default.createElement(Gu,null),X__namespace.default.createElement(LP,null),X__namespace.default.createElement(B1,null))}function k7(e,t){var n;if(!(e!=null&&e.participants)||!(e!=null&&e.ownerId))return false;let o=(n=e==null?void 0:e.participants)==null?void 0:n.find(a=>{var s,i;return ((s=a==null?void 0:a.users)==null?void 0:s.some(c=>(c==null?void 0:c.id)===t))||((i=a==null?void 0:a.page)==null?void 0:i.id)===t}),r=o==null?void 0:o.id;return (e==null?void 0:e.ownerId)===r||(e==null?void 0:e.ownerId)===t}function Hu(e,t,o){var d,l,m;if(!(e!=null&&e.actions))return null;let r=((d=e.sender)==null?void 0:d.name)||"Algu\xE9m",n=e.senderId===o,a="";try{if(e.body){let p=JSON.parse(e.body);(p.targetName||(l=p.target)!=null&&l.name)&&(a=p.targetName||((m=p.target)==null?void 0:m.name));}}catch(p){e.body&&!e.body.includes("{")&&!e.body.includes("}")&&(a=e.body);}let s=t==="pt"?"um participante":t==="fr"?"un participant":"a participant",i=t==="pt"?"um usu\xE1rio":t==="fr"?"un utilisateur":"a user";switch(String(e.actions).trim()){case "left":let p=r!=="Algu\xE9m"?r:e.body&&!e.body.includes("{")&&!e.body.includes("}")?e.body.trim():r;return q(t,"message-action-user-left",{name:p});case "remove":return a&&(a.toLowerCase().trim()===r.toLowerCase().trim()||e.body&&e.body.toLowerCase().trim()===r.toLowerCase().trim())?q(t,"message-action-user-left",{name:r}):n?q(t,"message-action-you-removed",{targetName:a||s}):q(t,"message-action-participant-removed",{name:r,targetName:a||s});case "add":return n?q(t,"message-action-you-added",{targetName:a||s}):q(t,"message-action-participant-added",{name:r,targetName:a||s});case "madeAdmin":return n?q(t,"message-action-you-promoted",{targetName:a||i}):q(t,"message-action-admin-promoted",{name:r,targetName:a||i});case "removedAdmin":return n?q(t,"message-action-you-removed-admin",{targetName:a||i}):q(t,"message-action-admin-removed",{name:r,targetName:a||i});default:return null}}function $m({isChatOpen:e=true,isCompactMode:t=false}){let{locale:o,user:r}=I(),{onlineUsers:n,messageAction:a,newMessages:s}=tr(),{selectedChat:i,onEditGroup:c,messages:d}=ve(),{conversations:l,isGettingConversations:m,userId:p,fetchNextPage:u,hasNextPage:g}=Fn(),[f]=lk__default.default({loading:m,hasNextPage:g,onLoadMore:u,disabled:!g,rootMargin:"0px 0px 200px 0px"}),v=h=>{var b;return (a==null?void 0:a.action)==="MESSAGE_DELETED"&&(a==null?void 0:a.conversationId)===h?{hasDeletedMessages:true,deletedMessagesCount:((b=a.messagesIds)==null?void 0:b.length)||0}:{hasDeletedMessages:false,deletedMessagesCount:0}};return !m&&(l==null?void 0:l.length)===0?X__namespace.default.createElement(Ds,{hasNoChat:true,isChatOpen:e}):X__namespace.default.createElement("div",{className:`
557
557
  w-full flex flex-col overflow-y-auto !scrollbar-hide
558
558
  ${t?"gap-1 p-1 h-full":"gap-6 p-2 h-[calc(100vh-10rem)] sm:h-[calc(100vh-8rem)] md:h-[calc(100vh-6rem)]"}
559
559
  `},l==null?void 0:l.map(h=>{var F,O,B,_,W,K,j,R,te,Y,ae,le,ue,be,Be,xe,$,he,Le,We,re,ke,et,_t,so,Vt,St,mt,Ze,Xe;let{hasDeletedMessages:b,deletedMessagesCount:x}=v(h.id),w=(O=(F=h==null?void 0:h.participants)==null?void 0:F.flatMap(Ie=>{var _e,No,ho,vo,Ro,en,je,Qe;let gt=(No=(_e=Ie==null?void 0:Ie.users)==null?void 0:_e.map(nt=>{var zo,So;return {id:nt==null?void 0:nt.id,name:nt==null?void 0:nt.name,avatar:(zo=nt==null?void 0:nt.avatar)!=null?zo:"",isOnline:(So=n==null?void 0:n[nt==null?void 0:nt.id])!=null?So:false,isAdmin:(Ie==null?void 0:Ie.role)==="ADMIN"}}))!=null?No:[],Fe=Ie!=null&&Ie.page?[{id:(ho=Ie==null?void 0:Ie.page)==null?void 0:ho.id,name:(vo=Ie==null?void 0:Ie.page)==null?void 0:vo.name,avatar:(en=(Ro=Ie==null?void 0:Ie.page)==null?void 0:Ro.logo)!=null?en:"",isOnline:(Qe=n==null?void 0:n[(je=Ie==null?void 0:Ie.page)==null?void 0:je.id])!=null?Qe:false,isAdmin:(Ie==null?void 0:Ie.role)==="ADMIN"}]:[];return [...gt,...Fe]}))!=null?O:[],C=(_=(B=h==null?void 0:h.message)==null?void 0:B.body)!=null?_:"",N=(W=h==null?void 0:h.message)==null?void 0:W.actions,P=!!(N&&typeof N=="string"&&["madeAdmin","removedAdmin","remove","add","left"].includes(N));if(P&&(h!=null&&h.message)){let Ie=w==null?void 0:w.find(vo=>{var Ro;return (vo==null?void 0:vo.id)===((Ro=h==null?void 0:h.message)==null?void 0:Ro.senderId)}),Fe=N==="left"&&h.message.body&&!h.message.body.includes("{")&&!h.message.body.includes("}")?h.message.body.trim():null,_e=h.message.sender||(Ie?{name:Ie.name,id:Ie.id,avatar:Ie.avatar}:{name:Fe||h.message.senderId||"Algu\xE9m",id:h.message.senderId,avatar:void 0}),No=z(y({},h.message),{sender:_e}),ho=Hu(No,o,r==null?void 0:r.id);ho&&(C=ho);}if(!P&&(h!=null&&h.isGroup)&&C)if((K=C==null?void 0:C.toLowerCase())==null?void 0:K.includes("created the group"))if(k7(h,p))C=q(o,"you-created");else {let gt=C==null?void 0:C.match(/^(.+?) created the group/),Fe=(j=gt==null?void 0:gt[1])!=null?j:q(o,"someone");C=q(o,"were-added",{name:Fe});}else if(((R=h==null?void 0:h.message)==null?void 0:R.senderId)===p)C=(Y=(te=h==null?void 0:h.message)==null?void 0:te.body)!=null?Y:"";else {let gt=(ae=w==null?void 0:w.find(Fe=>{var _e;return (Fe==null?void 0:Fe.id)===((_e=h==null?void 0:h.message)==null?void 0:_e.senderId)}))==null?void 0:ae.name;C=`${gt!=null?gt:q(o,"someone")}: ${(ue=(le=h==null?void 0:h.message)==null?void 0:le.body)!=null?ue:""}`;}let M=h!=null&&h.isGroup&&C?(be=C==null?void 0:C.toLowerCase())==null?void 0:be.includes("added you"):false,S=h==null?void 0:h.id,E=S?(xe=(Be=d==null?void 0:d[S])==null?void 0:Be.filter(Ie=>Ie==null?void 0:Ie.isTemporary))!=null?xe:[]:[],T=(E==null?void 0:E.length)>0?E==null?void 0:E[(E==null?void 0:E.length)-1]:null,k=b?false:T?(T==null?void 0:T.senderId)===p:(($=h==null?void 0:h.message)==null?void 0:$.senderId)===p,H=b?q(o,"message-deleted"):P?C!=null?C:"":T?T==null?void 0:T.content:C!=null?C:"",D=b||T==null?void 0:T.attachmentType,G=b?new Date:T?new Date((he=T==null?void 0:T.timestamp)!=null?he:Date.now()):new Date((We=(Le=h==null?void 0:h.message)==null?void 0:Le.createdAt)!=null?We:Date.now()),V=(re=h==null?void 0:h.isAdmin)!=null?re:false,L=h!=null&&h.isGroup?null:w==null?void 0:w.find(Ie=>(Ie==null?void 0:Ie.id)!==p);return X__namespace.default.createElement(fd,{key:h==null?void 0:h.id,description:h==null?void 0:h.description,isCreationMessage:M,participantId:(et=(ke=h==null?void 0:h.participants)==null?void 0:ke.find(Ie=>{var gt,Fe;return ((gt=Ie==null?void 0:Ie.users)==null?void 0:gt.some(_e=>(_e==null?void 0:_e.id)===p))||((Fe=Ie==null?void 0:Ie.page)==null?void 0:Fe.id)===p}))==null?void 0:et.id,unreadCount:h==null?void 0:h.unreadCount,isGroupOwner:k7(h,p),isGroupAdmin:V,justReceivedMessage:s==null?void 0:s[h==null?void 0:h.id],onEditGroups:()=>{var Ie;return c==null?void 0:c({id:h==null?void 0:h.id,description:h==null?void 0:h.description,image:h==null?void 0:h.image,name:h==null?void 0:h.name,participants:(Ie=w==null?void 0:w.map(gt=>gt==null?void 0:gt.id))==null?void 0:Ie.filter(Boolean)})},participants:w==null?void 0:w.filter(Boolean),isSelected:(i==null?void 0:i.conversationId)===(h==null?void 0:h.id),conversationId:h==null?void 0:h.id,isGroup:h==null?void 0:h.isGroup,isPinned:h==null?void 0:h.isPinned,isArchived:h==null?void 0:h.isArchived,isMuted:h==null?void 0:h.isMuted,isFavorited:h==null?void 0:h.isFavorited,hasDeletedMessages:b,deletedMessagesCount:x,isCompactMode:t,isChatOpen:e,user:{avatar:h!=null&&h.isGroup?(_t=h==null?void 0:h.image)!=null?_t:"":(so=L==null?void 0:L.avatar)!=null?so:"",name:h!=null&&h.isGroup?h==null?void 0:h.name:(Vt=L==null?void 0:L.name)!=null?Vt:q(o,"someone"),isOnline:(St=L==null?void 0:L.isOnline)!=null?St:false,id:L==null?void 0:L.id,slug:L==null?void 0:L.slug,isAdmin:L==null?void 0:L.isAdmin},message:{updatedAt:G,fromMe:k,content:H,attachments:(Ze=(mt=h==null?void 0:h.message)==null?void 0:mt.attachments)!=null?Ze:[],attachmentType:D,isDeleted:b,actions:(Xe=h==null?void 0:h.message)==null?void 0:Xe.actions}})}),X__namespace.default.createElement("div",{ref:f,className:`flex justify-center ${t?"py-1":"py-4"}`},m&&X__namespace.default.createElement(De,{className:"!mx-auto"})))}function fq(){return X__namespace.default.createElement("div",{className:"relative w-full min-h-[3.25rem] md:h-[4.25rem] md:w-[17.3125rem] flex items-start cursor-pointer transition-colors px-2 py-2 gap-2 select-none"},X__namespace.default.createElement("div",{className:"w-10 h-10 rounded-full bg-gray-200 animate-pulse flex-shrink-0"}),X__namespace.default.createElement("div",{className:"flex flex-col flex-1 justify-center gap-2"},X__namespace.default.createElement("div",{className:"h-4 bg-gray-200 rounded w-1/2 animate-pulse"}),X__namespace.default.createElement("div",{className:"h-3 bg-gray-200 rounded w-3/4 animate-pulse"})),X__namespace.default.createElement("div",{className:"flex flex-col items-end justify-start gap-2"},X__namespace.default.createElement("div",{className:"h-3 bg-gray-200 rounded w-10 animate-pulse"})))}var Uu=fq;var _u=t9.gql`
@@ -1614,7 +1614,7 @@ mutation CreateParticipant($input: CreateParticipantInput!) {
1614
1614
  }
1615
1615
  }
1616
1616
  }
1617
- `;function sI(){let{user:e,chatApiUrl:t,queryClient:o}=I(),{mutate:r,isPending:n}=pe({mutationFn:a=>Q(this,null,function*(){var c,d;if(!a.conversationId||!t)return null;let s=(c=a.participants)==null?void 0:c.find(l=>{var m,p;return ((p=(m=l.users)==null?void 0:m[0])==null?void 0:p.id)===a.currentUserId}),i=yield t9.request(t,aI,{input:{conversationId:a.conversationId,userIds:a.userIds,addedByParticipantId:s==null?void 0:s.id}},{"x-access-token":(d=e==null?void 0:e.accessToken)!=null?d:""});return i==null?void 0:i.createParticipant}),onSuccess:(a,s)=>{s.conversationId&&(o==null||o.invalidateQueries({queryKey:["conversation",s.conversationId]})),o==null||o.invalidateQueries({queryKey:["conversations",e==null?void 0:e.id]});}});return {addParticipants:r,isAddingParticipants:n}}function iI({participant:e,name:t,description:o,image:r,isOpen:n,onClose:a,createdAt:s,creatorName:i,onAddMembers:c,currentUserId:d,currentUserRole:l,conversationId:m}){let{isMobile:p}=Zd(),{debouncedSearchTerm:u,setValue:g,value:f}=js("",400),{activeTab:v,setActiveTab:h,showAddMembers:b,setShowAddMembers:x,isAdding:w,memberSearchQuery:N,setMemberSearchQuery:A}=GA(),{addParticipants:P,isAddingParticipants:M}=sI(),{data:S,fetchNextPage:E,hasNextPage:T,isFetchingNextPage:k,isLoading:H}=Qd({contactsOnly:false,search:u}),L={participant:e,name:t,description:o,image:r,createdAt:s,creatorName:i,currentUserId:d,currentUserRole:l,activeTab:v,setActiveTab:h,showAddMembers:b,memberSearchQuery:N,setMemberSearchQuery:A,searchQuery:f,onSearchQuery:g,contacts:S,isAdding:w||M,fetchNextPage:E,hasNextPage:T,isFetchingNextPage:k||H,onAddMembersClick:()=>{x(true),g("");},onConfirmAddMembers:F=>Q(this,null,function*(){!F||F.length===0||!m||P({conversationId:m,userIds:F,currentUserId:d,participants:e},{onSuccess:()=>{x(false),h("members");},onError:()=>{x(false),h("members");}});}),onBackFromAddMembers:()=>{x(false),g("");},onClose:a,isMobile:p,conversationId:m};return p?X__namespace.default.createElement(ta,{isOpen:n,onClose:a,className:"w-full h-full rounded-t-2xl p-0",hideCloseBlock:true},X__namespace.default.createElement(f9,y({},L))):X__namespace.default.createElement(ca,{isOpen:n,onClose:a,showCloseButton:false,closeOnClickOutside:true,className:"max-h-[90vh] w-[31.25rem] overflow-hidden",disableFullScreen:true},X__namespace.default.createElement(f9,y({},L)))}var K5=({isOpen:e,onClose:t,selectedGroup:o,onAddMembers:r})=>{var l,m,p;let{user:n}=I(),a=(l=n==null?void 0:n.id)!=null?l:"";if(!o)return null;let s=(m=o==null?void 0:o.participants)==null?void 0:m.find(u=>{var g;return ((g=u==null?void 0:u.user)==null?void 0:g.id)===a}),i=s==null?void 0:s.role,c=((p=o==null?void 0:o.participants)==null?void 0:p.map(u=>{var g,f,v,h;return {id:u==null?void 0:u.id,role:u==null?void 0:u.role,users:u!=null&&u.user?[{id:(g=u==null?void 0:u.user)==null?void 0:g.id,name:(f=u==null?void 0:u.user)==null?void 0:f.name,avatar:((v=u==null?void 0:u.user)==null?void 0:v.avatar)||void 0,slug:(h=u==null?void 0:u.user)==null?void 0:h.slug}]:void 0}}))||[],d=()=>{var g,f;let u=(g=o==null?void 0:o.participants)==null?void 0:g.find(v=>(v==null?void 0:v.role)==="OWNER");return ((f=u==null?void 0:u.user)==null?void 0:f.name)||(o==null?void 0:o.ownerId)||"Unknown"};return X__namespace.default.createElement(iI,{isOpen:e,onClose:t,participant:c,name:(o==null?void 0:o.name)||void 0,description:(o==null?void 0:o.description)||void 0,createdAt:o==null?void 0:o.createdAt,creatorName:d(),onAddMembers:r,currentUserId:a!=null?a:"",currentUserRole:i,conversationId:o==null?void 0:o.id})};var NJ=({chats:e,selectedChatId:t,onChatSelect:o,onBack:r,onCloseConversation:n,showBackButton:a,isLoading:s,canCreateConversation:i=true,showFilters:c=true,fetchNextPage:d,hasNextPage:l,isFetchingNextPage:m,activeFilter:p="all",onFilterChange:u,searchQuery:g="",onSearchChange:f,conversations:v=[],chatForPage:h,isCompactMode:b=false})=>{let{t:x}=ct(),w=X.useRef(null),C=X.useRef(null),N=KS(),A=nA(N,v,o,h);aA({containerRef:C,fetchNextPage:d,hasNextPage:l,isFetchingNextPage:m});let P=e==null?void 0:e.filter(E=>E==null?void 0:E.isGroup).length,M=e==null?void 0:e.filter(E=>E==null?void 0:E.isArchived).length,S=[{id:"all",label:x("all")},{id:"unread",label:x("unread")},{id:"favorites",label:x("favorites")},{id:"groups",label:x("groups"),count:P},{id:"archived",label:x("archived"),count:M}];return N.viewMode==="createGroup"||N.viewMode==="newChat"?X__namespace.default.createElement(mA,{viewMode:N.viewMode,isTransitioning:N.isTransitioning,transitionDirection:N.transitionDirection,onNavigateBack:A.handleNavigateBack,onSelectContact:A.handleSelectContact,onCreateGroup:A.handleCreateGroup,selectedContactId:N.selectedContactId,isCreating:A.isCreatingConversation}):X__namespace.default.createElement(X__namespace.default.Fragment,null,X__namespace.default.createElement("div",{ref:w,className:U("flex flex-col h-full rounded-[1rem] bg-white w-full transition-all duration-200 ease-out overflow-hidden",b?"p-2 gap-2":"p-6 gap-6",A.getAnimationClass())},X__namespace.default.createElement("div",{className:"flex-shrink-0"},b?null:X__namespace.default.createElement(fA,{showBackButton:a,onBack:r,canCreateConversation:i,onOpenCreateGroup:A.handleOpenCreateGroup,onOpenNewChat:A.handleOpenNewChat,showCreateDrawer:N.showCreateDrawer,setShowCreateDrawer:N.setShowCreateDrawer,isCompactMode:b}),X__namespace.default.createElement(hA,{searchQuery:g,onSearchChange:f,isCompactMode:b})),!b&&c&&X__namespace.default.createElement(yA,{filters:S,activeFilter:p,onFilterChange:u}),X__namespace.default.createElement(c9,{ref:C,chats:e,selectedChatId:t,chatForPage:h,onChatSelect:o,onGroupInfo:A.handleGroupInfo,onContactInfo:A.handleContactInfo,isLoading:s,isFetchingNextPage:m,searchQuery:g,isCompactMode:b,onNewChat:A.handleOpenNewChat,onBack:r,onCloseConversation:n})),X__namespace.default.createElement(K5,{isOpen:N.groupDetailsOpen,onClose:A.handleCloseGroupDetails,selectedGroup:A.getSelectedGroup(),onAddMembers:A.handleAddMembers}),X__namespace.default.createElement(Ho,{open:N.showNewChatDrawer,onOpenChange:E=>{N.setShowNewChatDrawer(E);}},X__namespace.default.createElement(sn,{className:"z-[9999999]"}),X__namespace.default.createElement(Uo,{className:"bg-white w-full h-[85vh] rounded-t-lg p-0 z-[9999999]"},X__namespace.default.createElement(O5,{onBack:()=>N.setShowNewChatDrawer(false),onSelectContact:A.handleSelectContactFromDrawer,isCreating:A.isCreatingConversation,selectedContactId:N.selectedContactId,showBackButton:false}))))},dI=NJ;function mI({conversationId:e,message:t,queryClient:o}){o.setQueriesData({queryKey:["conversations"],exact:false},r=>r!=null&&r.pages?z(y({},r),{pages:r.pages.map(n=>{var a;return z(y({},n),{data:(a=n.data)==null?void 0:a.map(s=>{var i;return s.id===e?z(y({},s),{message:z(y({},t),{sender:(i=t.sender)!=null?i:null}),lastMessageAt:t.createdAt}):s})})})}):r);}function pI({conversationId:e,message:t,queryClient:o}){o.setQueryData(["messages",e],r=>!(r!=null&&r.pages)||r.pages.some(a=>{var s;return (s=a.messages)==null?void 0:s.some(i=>i.id===t.id)})?r:z(y({},r),{pages:r.pages.map((a,s)=>{var i;return s===0?z(y({},a),{messages:[t,...(i=a.messages)!=null?i:[]]}):a})}));}function SJ({conversationId:e,messageIds:t,queryClient:o}){o.setQueryData(["messages",e],r=>r!=null&&r.pages?z(y({},r),{pages:r.pages.map(n=>{var a;return z(y({},n),{messages:(a=n.messages)==null?void 0:a.filter(s=>{var i;return !t.includes((i=s.id)!=null?i:"")})})})}):r);}function uI(e){let {socketApiUrl:t,accessToken:o,userId:r,pageId:n,chatForPage:a=false,chatHeaderOption:s="all",pageChatHeaderOption:i="all",selectedChat:c,onSelectedChatUpdate:d}=e,l=ja(),[m,p]=X.useState(null),[u,g]=X.useState(false),[f,v]=X.useState(false),[h,b]=X.useState({}),[x,w]=X.useState({}),[C,N]=X.useState({}),[A,P]=X.useState({messagesIds:[],action:void 0,userName:"",conversationId:""}),M=X.useRef(null),S=X.useRef(false),E=X.useRef(false),T=a?n:r;X.useEffect(()=>{M.current=new Audio(ou),M.current.volume=.5;let L=()=>{S.current=true,E.current&&M.current&&(M.current.currentTime=0,M.current.play().catch(()=>{}),E.current=false);};return ["click","keydown","touchstart"].forEach(F=>document.addEventListener(F,L,{once:true})),()=>{var F;["click","keydown","touchstart"].forEach(O=>document.removeEventListener(O,L)),(F=M.current)==null||F.pause(),M.current=null;}},[]);let H=X.useCallback(()=>{M.current&&(M.current.currentTime=0,S.current?M.current.play().catch(L=>{L.name==="NotAllowedError"&&(E.current=true);}):E.current=true);},[]),D=X.useCallback(L=>{var R,te,Y,ae,le,ue;let F=(L==null?void 0:L.action)==="MESSAGE_CREATED"?L.data:L,O=(F==null?void 0:F.senderId)||((R=F==null?void 0:F.sender)==null?void 0:R.id)||(F==null?void 0:F.userId),B=a?O===n:O===r,_=(Y=(te=L==null?void 0:L.data)==null?void 0:te.actions)!=null?Y:L==null?void 0:L.action;switch(_){case "MESSAGE_DELETED":P({action:"MESSAGE_DELETED",messagesIds:L.messageIds||((ae=L==null?void 0:L.data)==null?void 0:ae.messageIds)||[],conversationId:L.conversationId||(F==null?void 0:F.conversationId)});let be=L.conversationId||(F==null?void 0:F.conversationId),Be=L.messageIds||((le=L==null?void 0:L.data)==null?void 0:le.messageIds)||[];be&&Be.length>0&&SJ({conversationId:be,messageIds:Be,queryClient:l});return;case "removedAdmin":case "madeAdmin":case "remove":case "add":case "left":P({action:_,conversationId:L.conversationId||(F==null?void 0:F.conversationId),userName:(ue=L==null?void 0:L.data)==null?void 0:ue.body}),l.invalidateQueries({queryKey:["conversations"]});return}if(!B){v(true),H();let be=L.conversationId||(F==null?void 0:F.conversationId);b(Be=>z(y({},Be),{[be]:true})),setTimeout(()=>{b(Be=>z(y({},Be),{[be]:false}));},2e3);}let W=L.conversationId||(F==null?void 0:F.conversationId),K=(F==null?void 0:F.pageId)||((F==null?void 0:F.senderId)===n?n:void 0);(a||!!K)&&n?(l.invalidateQueries({queryKey:["conversations",n]}),mI({conversationId:W,message:F,queryClient:l}),pI({conversationId:W,message:F,queryClient:l})):r&&(l.invalidateQueries({queryKey:["conversations",r]}),mI({conversationId:W,message:F,queryClient:l}),pI({conversationId:W,message:F,queryClient:l}));},[r,n,a,s,i,l,H]),G=X.useCallback(L=>{let{messageId:F,reaction:O,count:B}=L;F&&O&&(N(_=>{var W,K,j;return z(y({},_),{[F]:z(y({},(W=_[F])!=null?W:{}),{[O]:B!=null?B:((j=(K=_[F])==null?void 0:K[O])!=null?j:0)+1})})}),l.invalidateQueries({queryKey:["message-reactions",F]}));},[l]);X.useEffect(()=>{if(!t||!T)return;let L=null,F=true;return Q(this,null,function*(){try{let{io:B}=yield import('socket.io-client');if(!F)return;let _={};a&&n&&(_.pageId=n),r&&(_.userId=r),L=B(t,{transports:["websocket","polling"],auth:{token:o!=null?o:""},query:_,autoConnect:!0}),L.on("connect",()=>{F&&g(!0);}),L.on("disconnect",()=>{F&&g(!1);}),L.on("userOnline",({userId:W})=>{F&&(w(K=>z(y({},K),{[W]:!0})),(c==null?void 0:c.id)===W&&d&&d(z(y({},c),{isOnline:!0})));}),L.on("userOffline",({userId:W})=>{F&&(w(K=>z(y({},K),{[W]:!1})),(c==null?void 0:c.id)===W&&d&&d(z(y({},c),{isOnline:!1})));}),L.on("onlineUsers",W=>{if(F&&W!=null&&W.users&&Array.isArray(W.users)){let K={};W.users.forEach(j=>{K[j]=!0;}),w(K);}}),L.on("newMessage",D),L.on("reaction",G),p(L);}catch(B){console.warn("Failed to connect socket:",B);}}),()=>{F=false,L==null||L.disconnect(),p(null);}},[t,o,T,a,r,n,D,G,c==null?void 0:c.id,d]);let V=X.useCallback(L=>{var F,O,B,_;if(m!=null&&m.connected){let W=L.pageId?(F=n!=null?n:r)!=null?F:"":(B=(O=L.senderId)!=null?O:r)!=null?B:"",K=z(y({},L),{userId:W,attachments:L==null?void 0:L.attachments});L.pageId&&(K.pageId=L.pageId,K.topic=(_=L.topic)!=null?_:""),m.emit("sendMessage",K);}},[m,r,n]);return {socket:m,isConnected:u,sendMessage:V,hasMessages:f,setHasMessages:v,onlineUsers:x,newMessages:h,realtimeReactions:C,messageAction:A}}function fI({chat:e,showBackButton:t,onBack:o,onGroupInfo:r,onContactInfo:n}){var a,s,i;return X__namespace.default.createElement("div",{className:"flex items-center justify-between bg-[#D0DEE533] p-4 md:m-4 md:rounded-[1rem] border-b border-border"},X__namespace.default.createElement("div",{className:"flex items-center gap-3"},t&&X__namespace.default.createElement("button",{onClick:o,className:"p-0 w-8 h-8 rounded-lg hover:bg-accent flex items-center justify-center"},X__namespace.default.createElement(lucideReact.ChevronLeft,{className:"w-5 h-5"})),X__namespace.default.createElement(se,{name:(a=e==null?void 0:e.name)!=null?a:"",src:(s=e==null?void 0:e.avatar)!=null?s:"",type:e!=null&&e.isGroup?"community":"user",className:"h-10 w-10"}),X__namespace.default.createElement("div",null,X__namespace.default.createElement("span",{className:"font-normal text-body-md md:text-[0.875rem] text-[#050910]"},dt((i=e==null?void 0:e.name)!=null?i:"")),X__namespace.default.createElement("p",{className:U("text-body-sm md:text-body-md",{"text-primary":e==null?void 0:e.isOnline,"text-text-secondary":!(e!=null&&e.isOnline)})},e!=null&&e.isOnline?"Online":"Offline"))),X__namespace.default.createElement("div",{className:"flex-shrink-0"},X__namespace.default.createElement(U5,{chat:e,asMessageHeader:true,onContactInfo:n,onGroupInfo:r,onBack:o})))}function gI({creatorName:e,conversationId:t}){var h,b,x;let{conversation:o,isLoadingConversation:r}=Gs(t!=null?t:""),{locale:n}=I(),[a,s]=X.useState(false),i=(o==null?void 0:o.name)||"",c=(h=o==null?void 0:o.description)!=null?h:"",d=(x=(b=o==null?void 0:o.participants)==null?void 0:b.map(w=>w==null?void 0:w.user))!=null?x:[],l=d.find(w=>(w==null?void 0:w.name)===e),m=(l==null?void 0:l.avatar)||(o==null?void 0:o.image),p=(c==null?void 0:c.length)>120,u=!p||a?c:c.slice(0,120)+"...",g=5,f=d==null?void 0:d.slice(0,g),v=Math.max(0,(d==null?void 0:d.length)-g);return r?X__namespace.default.createElement("div",{className:"w-full md:w-[22dvw] flex flex-col gap-4 items-center justify-center h-full rounded-md p-6"},X__namespace.default.createElement("div",{className:"w-16 h-16 rounded-full bg-gray-200 animate-pulse"}),X__namespace.default.createElement("div",{className:"h-4 w-32 bg-gray-200 rounded animate-pulse"}),X__namespace.default.createElement("div",{className:"h-3 w-48 bg-gray-200 rounded animate-pulse"}),X__namespace.default.createElement("div",{className:"flex -space-x-3 overflow-hidden mt-2"},[...Array(3)].map((w,C)=>X__namespace.default.createElement("div",{key:C,className:"w-8 h-8 rounded-full bg-gray-200 animate-pulse"})))):X__namespace.default.createElement("div",{className:"w-full md:w-[22dvw] flex flex-col gap-4 items-center justify-center h-full rounded-md p-6 "},X__namespace.default.createElement(se,{name:e||i,src:m,className:"w-16 h-16"}),X__namespace.default.createElement("p",{className:"text-body-sm md:text-body-lg font-bold text-text-secondary text-center"},q(n,"group-created",{name:e||i})),c&&X__namespace.default.createElement("div",{className:"text-center text-gray-600 text-sm md:text-base max-w-full"},X__namespace.default.createElement("p",null,u),p&&X__namespace.default.createElement("button",{className:"text-primary text-xs mt-1 !mx-auto hover:underline",onClick:()=>s(w=>!w)},a?lt(n,"explore.see-less"):lt(n,"explore.see-more"))),(d==null?void 0:d.length)>0&&X__namespace.default.createElement("div",{className:"flex -space-x-3 overflow-hidden mt-2 flex-wrap justify-center"},f.map(w=>{var C;return X__namespace.default.createElement("div",{key:w==null?void 0:w.id,className:"relative group"},X__namespace.default.createElement(se,{name:(C=w==null?void 0:w.name)!=null?C:"",src:w==null?void 0:w.avatar,className:"w-8 h-8 border-2 border-white rounded-full shadow-sm"}),X__namespace.default.createElement("span",{className:"absolute bottom-10 left-1/2 -translate-x-1/2 whitespace-nowrap bg-black text-white text-xs rounded-md px-2 py-1 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none"},w==null?void 0:w.name))}),v>0&&X__namespace.default.createElement("div",{className:"w-8 h-8 flex items-center justify-center bg-gray-200 text-gray-700 text-xs font-medium rounded-full border-2 border-white shadow-sm"},"+",v)))}function hI(e){if(!e)return;let t=e.match(/^(.*?)\s+created the group/i);return t?t[1]:void 0}var vI=e=>{let t=[],o="";return e.forEach(r=>{let n=r!=null&&r.createdAt?new Date(r==null?void 0:r.createdAt).toLocaleDateString():"Today";n!==o&&(o=n,t.push({type:"date",date:n})),t.push({type:"message",message:r});}),t};var bI=e=>{let t=e.find(o=>{var r;return (r=o==null?void 0:o.body)==null?void 0:r.toLowerCase().includes("created the group")});return t&&hI(t.body)||""};function Cp({isSent:e}){return X__namespace.default.createElement("div",{className:`flex ${e?"justify-end":"justify-start"} gap-2`},!e&&X__namespace.default.createElement(It,{className:"w-8 h-8 rounded-full bg-gray-200"}),X__namespace.default.createElement(It,{className:`h-16 ${e?"w-48":"w-64"} rounded-2xl bg-gray-200`}))}var xI=({date:e})=>X__namespace.default.createElement("div",{className:"flex items-center justify-center py-2"},X__namespace.default.createElement("span",{className:"px-3 py-1 bg-muted rounded-full text-xs text-muted-foreground"},e));function EJ(e){return X__namespace.createElement("svg",y({width:52,height:40,fill:"none"},e),X__namespace.createElement("path",{d:"M42.667 1H9.333C4.73 1 1 4.564 1 8.943V24.65c0 3.82 2.82 7.012 6.582 7.78l-1.758 5.203 8.138-5.011h28.705c4.6 0 8.333-3.564 8.333-7.944V8.973C51 4.564 47.267 1 42.667 1z",fill:"#F2F3F4",stroke:"#E4EBF1",strokeWidth:2,strokeMiterlimit:10}))}var kJ=X__namespace.memo(EJ),wI=kJ;function Z5(e){let t={"Content-Type":"application/json"};return e&&(t["x-access-token"]=e),t}function Y5(e){let {chatApiUrl:t,user:o,page:r}=I(),{conversationId:a,perPage:s=20,enabled:i=true,chatForPage:c=false}=typeof e=="object"&&e!==null&&"conversationId"in e?e:{conversationId:e,perPage:20,enabled:true,chatForPage:false},d=v5("messages",a!=null?a:"",c?r==null?void 0:r.id:o==null?void 0:o.id);return ut({queryKey:d,queryFn:m=>Q(this,[m],function*({pageParam:l=1}){var p,u,g,f,v,h,b,x,w,C;if(!a)return {messages:[],hasMore:false,meta:null,nextPage:1,lastPage:1};try{let N=Z5(o==null?void 0:o.accessToken),A={};c&&(r!=null&&r.id)&&(A.pageId=r.id);let P=yield t9__default.default(t!=null?t:"",e9,{conversationId:a,options:{filter:Object.keys(A).length>0?A:void 0,page:l,perPage:s}},N),M=P==null?void 0:P.getMessagesByConversation;return {messages:(p=M==null?void 0:M.data)!=null?p:[],hasMore:((g=(u=M==null?void 0:M.meta)==null?void 0:u.currentPage)!=null?g:0)<((v=(f=M==null?void 0:M.meta)==null?void 0:f.lastPage)!=null?v:0),meta:(h=M==null?void 0:M.meta)!=null?h:null,nextPage:((x=(b=M==null?void 0:M.meta)==null?void 0:b.currentPage)!=null?x:0)+1,lastPage:(C=(w=M==null?void 0:M.meta)==null?void 0:w.lastPage)!=null?C:1}}catch(N){return {messages:[],hasMore:false,meta:null,nextPage:1,lastPage:1}}}),getNextPageParam:l=>{if(l&&typeof l=="object"&&typeof(l==null?void 0:l.hasMore)=="boolean"&&typeof(l==null?void 0:l.nextPage)=="number")return l!=null&&l.hasMore?l==null?void 0:l.nextPage:void 0},initialPageParam:1,enabled:!!a&&i})}var CI=({chat:e,chatForPage:t,activeFilter:o,realtimeReactions:r,isSelectMode:n=false,selectedMessageIds:a=[],onSelectMessage:s,onClearSelection:i})=>{var V,L;let{user:c,page:d}=I(),{t:l}=ct(),m=X.useRef(null),p=X.useRef(null),u=X.useRef(true),g=X.useRef(0),f=X.useRef(void 0),[v,h]=X.useState(false),[b,x]=X.useState(true),[w,C]=X.useState(null),{markChatAsRead:N}=Gd((V=e==null?void 0:e.id)!=null?V:"",t,o),A=X.useCallback(()=>{var F;(F=m.current)==null||F.scrollIntoView({behavior:"smooth"});},[]),{data:P,isLoading:M,fetchNextPage:S,hasNextPage:E,isFetchingNextPage:T}=Y5({conversationId:(L=e==null?void 0:e.id)!=null?L:"",perPage:20,enabled:!!(e!=null&&e.id),chatForPage:t!=null?t:false}),k=X__namespace.default.useMemo(()=>{var O;return [...((O=P==null?void 0:P.pages)==null?void 0:O.flatMap(B=>B==null?void 0:B.messages))||[]].sort((B,_)=>{let W=new Date((B==null?void 0:B.createdAt)||0).getTime(),K=new Date((_==null?void 0:_.createdAt)||0).getTime();return W-K})},[P==null?void 0:P.pages]),H=e?vI(k):[],D=e!=null&&e.isGroup?bI(k):"";X.useEffect(()=>{!M&&(e!=null&&e.id)&&((e==null?void 0:e.unreadCount)||0)>0&&N(e==null?void 0:e.id);},[e==null?void 0:e.id,e==null?void 0:e.unreadCount,M,N]),X.useEffect(()=>{f.current!==(e==null?void 0:e.id)&&(u.current=true,h(false),x(true),C(null),f.current=e==null?void 0:e.id);},[e==null?void 0:e.id]),X.useEffect(()=>{let F=p.current;if(!F)return;let O=F.scrollTop,B,_=()=>{let{scrollTop:W,scrollHeight:K,clientHeight:j}=F;B&&clearTimeout(B);let R=W<O;O=W;let te=K-W-j<50;x(te),R&&!te&&h(true),B=setTimeout(()=>{h(false);},500);};return F.addEventListener("scroll",_),()=>{F.removeEventListener("scroll",_),B&&clearTimeout(B);}},[]),X.useEffect(()=>{let F=p.current;if(!F||!T||!E)return;let{scrollTop:O,scrollHeight:B}=F;C({top:O,height:B});},[T,E]),X.useEffect(()=>{let F=p.current;if(!F||!w||!T)return;let{top:O,height:B}=w,W=F.scrollHeight-B;F.scrollTop=O+W,C(null);},[T,w]),X.useEffect(()=>{let F=p.current;if(!F)return;let O=k.length,B=O>g.current;u.current&&!M&&O>0?(setTimeout(()=>{var _;(_=m.current)==null||_.scrollIntoView({behavior:"auto"});},100),u.current=false,g.current=O):!u.current&&B&&!v&&(F.scrollHeight-F.scrollTop-F.clientHeight<100&&setTimeout(()=>{var W;(W=m.current)==null||W.scrollIntoView({behavior:"smooth"});},50),g.current=O);},[k.length,M,v]);let G=()=>{let F=p.current;if(!F||!E||T)return;let{scrollTop:O}=F;O<100&&S();};return (k==null?void 0:k.length)===0&&!M?X__namespace.default.createElement("div",{className:"w-full h-full flex flex-col items-center justify-center"},X__namespace.default.createElement(wI,null),X__namespace.default.createElement("p",{className:"text-body-sm md:text-[1rem] text-[#050910]"},l("empty-conversation"))):X__namespace.default.createElement("div",{className:"relative flex-1 min-h-0"},X__namespace.default.createElement("div",{ref:p,className:"h-full overflow-y-auto p-4 flex flex-col scrollbar-hide",onScroll:G},T&&X__namespace.default.createElement("div",{className:"flex justify-center py-2"},X__namespace.default.createElement(De,null)),M?X__namespace.default.createElement("div",{className:"space-y-3"},X__namespace.default.createElement(Cp,{isSent:false}),X__namespace.default.createElement(Cp,{isSent:true}),X__namespace.default.createElement(Cp,{isSent:false}),X__namespace.default.createElement(Cp,{isSent:true})):X__namespace.default.createElement("div",{className:"space-y-1 mt-auto"},(e==null?void 0:e.isGroup)&&D&&X__namespace.default.createElement("div",{className:"flex justify-center w-full mb-6"},X__namespace.default.createElement(gI,{conversationId:e==null?void 0:e.id,creatorName:D})),H.filter(F=>{var O;if(e!=null&&e.isGroup&&F.type==="message"&&(F!=null&&F.message)){let B=F.message;return !((O=B==null?void 0:B.body)==null?void 0:O.toLowerCase().includes("created the group"))}return true}).map((F,O)=>{var B,_,W;if((F==null?void 0:F.type)==="date")return X__namespace.default.createElement(xI,{key:`date-${O}`,date:F==null?void 0:F.date});if((F==null?void 0:F.type)==="message"&&(F!=null&&F.message)){let K=F==null?void 0:F.message,j=t?(K==null?void 0:K.senderId)===(d==null?void 0:d.id)||((B=K==null?void 0:K.sender)==null?void 0:B.id)===(d==null?void 0:d.id):((_=K==null?void 0:K.sender)==null?void 0:_.id)===(c==null?void 0:c.id)||(K==null?void 0:K.senderId)===(c==null?void 0:c.id),R=a.includes((W=K==null?void 0:K.id)!=null?W:"");return X__namespace.default.createElement(h0,{key:K==null?void 0:K.id,message:K,selectedConversation:e,isOwnMessage:j,activeFilter:o,chatForPage:t,isSelectMode:n,isSelected:R,onSelectMessage:s,onClearSelection:i,realtimeReactions:r})}return null})),X__namespace.default.createElement("div",{ref:m})),X__namespace.default.createElement(react.AnimatePresence,null,!b&&X__namespace.default.createElement(react.motion.button,{key:"scroll-to-bottom",initial:{opacity:0,x:60},animate:{opacity:1,x:0},exit:{opacity:0,x:60},transition:{duration:.3,ease:"easeOut"},onClick:A,className:`\r
1617
+ `;function sI(){let{user:e,chatApiUrl:t,queryClient:o}=I(),{mutate:r,isPending:n}=pe({mutationFn:a=>Q(this,null,function*(){var c,d;if(!a.conversationId||!t)return null;let s=(c=a.participants)==null?void 0:c.find(l=>{var m,p;return ((p=(m=l.users)==null?void 0:m[0])==null?void 0:p.id)===a.currentUserId}),i=yield t9.request(t,aI,{input:{conversationId:a.conversationId,userIds:a.userIds,addedByParticipantId:s==null?void 0:s.id}},{"x-access-token":(d=e==null?void 0:e.accessToken)!=null?d:""});return i==null?void 0:i.createParticipant}),onSuccess:(a,s)=>{s.conversationId&&(o==null||o.invalidateQueries({queryKey:["conversation",s.conversationId]})),o==null||o.invalidateQueries({queryKey:["conversations",e==null?void 0:e.id]});}});return {addParticipants:r,isAddingParticipants:n}}function iI({participant:e,name:t,description:o,image:r,isOpen:n,onClose:a,createdAt:s,creatorName:i,onAddMembers:c,currentUserId:d,currentUserRole:l,conversationId:m}){let{isMobile:p}=Zd(),{debouncedSearchTerm:u,setValue:g,value:f}=js("",400),{activeTab:v,setActiveTab:h,showAddMembers:b,setShowAddMembers:x,isAdding:w,memberSearchQuery:N,setMemberSearchQuery:A}=GA(),{addParticipants:P,isAddingParticipants:M}=sI(),{data:S,fetchNextPage:E,hasNextPage:T,isFetchingNextPage:k,isLoading:H}=Qd({contactsOnly:false,search:u}),L={participant:e,name:t,description:o,image:r,createdAt:s,creatorName:i,currentUserId:d,currentUserRole:l,activeTab:v,setActiveTab:h,showAddMembers:b,memberSearchQuery:N,setMemberSearchQuery:A,searchQuery:f,onSearchQuery:g,contacts:S,isAdding:w||M,fetchNextPage:E,hasNextPage:T,isFetchingNextPage:k||H,onAddMembersClick:()=>{x(true),g("");},onConfirmAddMembers:F=>Q(this,null,function*(){!F||F.length===0||!m||P({conversationId:m,userIds:F,currentUserId:d,participants:e},{onSuccess:()=>{x(false),h("members");},onError:()=>{x(false),h("members");}});}),onBackFromAddMembers:()=>{x(false),g("");},onClose:a,isMobile:p,conversationId:m};return p?X__namespace.default.createElement(ta,{isOpen:n,onClose:a,className:"w-full h-full rounded-t-2xl p-0",hideCloseBlock:true},X__namespace.default.createElement(f9,y({},L))):X__namespace.default.createElement(ca,{isOpen:n,onClose:a,showCloseButton:false,closeOnClickOutside:true,className:"max-h-[90vh] w-[31.25rem] overflow-hidden",disableFullScreen:true},X__namespace.default.createElement(f9,y({},L)))}var K5=({isOpen:e,onClose:t,selectedGroup:o,onAddMembers:r})=>{var l,m,p;let{user:n}=I(),a=(l=n==null?void 0:n.id)!=null?l:"";if(!o)return null;let s=(m=o==null?void 0:o.participants)==null?void 0:m.find(u=>{var g;return ((g=u==null?void 0:u.user)==null?void 0:g.id)===a}),i=s==null?void 0:s.role,c=((p=o==null?void 0:o.participants)==null?void 0:p.map(u=>{var g,f,v,h;return {id:u==null?void 0:u.id,role:u==null?void 0:u.role,users:u!=null&&u.user?[{id:(g=u==null?void 0:u.user)==null?void 0:g.id,name:(f=u==null?void 0:u.user)==null?void 0:f.name,avatar:((v=u==null?void 0:u.user)==null?void 0:v.avatar)||void 0,slug:(h=u==null?void 0:u.user)==null?void 0:h.slug}]:void 0}}))||[],d=()=>{var g,f;let u=(g=o==null?void 0:o.participants)==null?void 0:g.find(v=>(v==null?void 0:v.role)==="OWNER");return ((f=u==null?void 0:u.user)==null?void 0:f.name)||(o==null?void 0:o.ownerId)||"Unknown"};return X__namespace.default.createElement(iI,{isOpen:e,onClose:t,participant:c,name:(o==null?void 0:o.name)||void 0,description:(o==null?void 0:o.description)||void 0,createdAt:o==null?void 0:o.createdAt,creatorName:d(),onAddMembers:r,currentUserId:a!=null?a:"",currentUserRole:i,conversationId:o==null?void 0:o.id})};var NJ=({chats:e,selectedChatId:t,onChatSelect:o,onBack:r,onCloseConversation:n,showBackButton:a,isLoading:s,canCreateConversation:i=true,showFilters:c=true,fetchNextPage:d,hasNextPage:l,isFetchingNextPage:m,activeFilter:p="all",onFilterChange:u,searchQuery:g="",onSearchChange:f,conversations:v=[],chatForPage:h,isCompactMode:b=false})=>{let{t:x}=ct(),w=X.useRef(null),C=X.useRef(null),N=KS(),A=nA(N,v,o,h);aA({containerRef:C,fetchNextPage:d,hasNextPage:l,isFetchingNextPage:m});let P=e==null?void 0:e.filter(E=>E==null?void 0:E.isGroup).length,M=e==null?void 0:e.filter(E=>E==null?void 0:E.isArchived).length,S=[{id:"all",label:x("all")},{id:"unread",label:x("unread")},{id:"favorites",label:x("favorites")},{id:"groups",label:x("groups"),count:P},{id:"archived",label:x("archived"),count:M}];return N.viewMode==="createGroup"||N.viewMode==="newChat"?X__namespace.default.createElement(mA,{viewMode:N.viewMode,isTransitioning:N.isTransitioning,transitionDirection:N.transitionDirection,onNavigateBack:A.handleNavigateBack,onSelectContact:A.handleSelectContact,onCreateGroup:A.handleCreateGroup,selectedContactId:N.selectedContactId,isCreating:A.isCreatingConversation}):X__namespace.default.createElement(X__namespace.default.Fragment,null,X__namespace.default.createElement("div",{ref:w,className:U("flex flex-col h-full rounded-[1rem] bg-white w-full transition-all duration-200 ease-out overflow-hidden",b?"p-2 gap-2":"p-6 gap-6",A.getAnimationClass())},X__namespace.default.createElement("div",{className:"flex-shrink-0"},b?null:X__namespace.default.createElement(fA,{showBackButton:a,onBack:r,canCreateConversation:i,onOpenCreateGroup:A.handleOpenCreateGroup,onOpenNewChat:A.handleOpenNewChat,showCreateDrawer:N.showCreateDrawer,setShowCreateDrawer:N.setShowCreateDrawer,isCompactMode:b}),X__namespace.default.createElement(hA,{searchQuery:g,onSearchChange:f,isCompactMode:b})),!b&&c&&X__namespace.default.createElement(yA,{filters:S,activeFilter:p,onFilterChange:u}),X__namespace.default.createElement(c9,{ref:C,chats:e,selectedChatId:t,chatForPage:h,onChatSelect:o,onGroupInfo:A.handleGroupInfo,onContactInfo:A.handleContactInfo,isLoading:s,isFetchingNextPage:m,searchQuery:g,isCompactMode:b,onNewChat:A.handleOpenNewChat,onBack:r,onCloseConversation:n})),X__namespace.default.createElement(K5,{isOpen:N.groupDetailsOpen,onClose:A.handleCloseGroupDetails,selectedGroup:A.getSelectedGroup(),onAddMembers:A.handleAddMembers}),X__namespace.default.createElement(Ho,{open:N.showNewChatDrawer,onOpenChange:E=>{N.setShowNewChatDrawer(E);}},X__namespace.default.createElement(sn,{className:"z-[9999999]"}),X__namespace.default.createElement(Uo,{className:"bg-white w-full h-[85vh] rounded-t-lg p-0 z-[9999999]"},X__namespace.default.createElement(O5,{onBack:()=>N.setShowNewChatDrawer(false),onSelectContact:A.handleSelectContactFromDrawer,isCreating:A.isCreatingConversation,selectedContactId:N.selectedContactId,showBackButton:false}))))},dI=NJ;function mI({conversationId:e,message:t,queryClient:o}){o.setQueriesData({queryKey:["conversations"],exact:false},r=>r!=null&&r.pages?z(y({},r),{pages:r.pages.map(n=>{var a;return z(y({},n),{data:(a=n.data)==null?void 0:a.map(s=>{var i;return s.id===e?z(y({},s),{message:z(y({},t),{sender:(i=t.sender)!=null?i:null}),lastMessageAt:t.createdAt}):s})})})}):r);}function pI({conversationId:e,message:t,queryClient:o}){o.setQueryData(["messages",e],r=>!(r!=null&&r.pages)||r.pages.some(a=>{var s;return (s=a.messages)==null?void 0:s.some(i=>i.id===t.id)})?r:z(y({},r),{pages:r.pages.map((a,s)=>{var i;return s===0?z(y({},a),{messages:[t,...(i=a.messages)!=null?i:[]]}):a})}));}function SJ({conversationId:e,messageIds:t,queryClient:o}){o.setQueryData(["messages",e],r=>r!=null&&r.pages?z(y({},r),{pages:r.pages.map(n=>{var a;return z(y({},n),{messages:(a=n.messages)==null?void 0:a.filter(s=>{var i;return !t.includes((i=s.id)!=null?i:"")})})})}):r);}function uI(e){let {socketApiUrl:t,accessToken:o,userId:r,pageId:n,chatForPage:a=false,chatHeaderOption:s="all",pageChatHeaderOption:i="all",selectedChat:c,onSelectedChatUpdate:d}=e,l=ja(),[m,p]=X.useState(null),[u,g]=X.useState(false),[f,v]=X.useState(false),[h,b]=X.useState({}),[x,w]=X.useState({}),[C,N]=X.useState({}),[A,P]=X.useState({messagesIds:[],action:void 0,userName:"",conversationId:""}),M=X.useRef(null),S=X.useRef(false),E=X.useRef(false),T=a?n:r;X.useEffect(()=>{M.current=new Audio(ou),M.current.volume=.5;let L=()=>{S.current=true,E.current&&M.current&&(M.current.currentTime=0,M.current.play().catch(()=>{}),E.current=false);};return ["click","keydown","touchstart"].forEach(F=>document.addEventListener(F,L,{once:true})),()=>{var F;["click","keydown","touchstart"].forEach(O=>document.removeEventListener(O,L)),(F=M.current)==null||F.pause(),M.current=null;}},[]);let H=X.useCallback(()=>{M.current&&(M.current.currentTime=0,S.current?M.current.play().catch(L=>{L.name==="NotAllowedError"&&(E.current=true);}):E.current=true);},[]),D=X.useCallback(L=>{var R,te,Y,ae,le,ue;let F=(L==null?void 0:L.action)==="MESSAGE_CREATED"?L.data:L,O=(F==null?void 0:F.senderId)||((R=F==null?void 0:F.sender)==null?void 0:R.id)||(F==null?void 0:F.userId),B=a?O===n:O===r,_=(Y=(te=L==null?void 0:L.data)==null?void 0:te.actions)!=null?Y:L==null?void 0:L.action;switch(_){case "MESSAGE_DELETED":P({action:"MESSAGE_DELETED",messagesIds:L.messageIds||((ae=L==null?void 0:L.data)==null?void 0:ae.messageIds)||[],conversationId:L.conversationId||(F==null?void 0:F.conversationId)});let be=L.conversationId||(F==null?void 0:F.conversationId),Be=L.messageIds||((le=L==null?void 0:L.data)==null?void 0:le.messageIds)||[];be&&Be.length>0&&SJ({conversationId:be,messageIds:Be,queryClient:l});return;case "removedAdmin":case "madeAdmin":case "remove":case "add":case "left":P({action:_,conversationId:L.conversationId||(F==null?void 0:F.conversationId),userName:(ue=L==null?void 0:L.data)==null?void 0:ue.body}),l.invalidateQueries({queryKey:["conversations"]});return}if(!B){v(true),H();let be=L.conversationId||(F==null?void 0:F.conversationId);b(Be=>z(y({},Be),{[be]:true})),setTimeout(()=>{b(Be=>z(y({},Be),{[be]:false}));},2e3);}let W=L.conversationId||(F==null?void 0:F.conversationId),K=(F==null?void 0:F.pageId)||((F==null?void 0:F.senderId)===n?n:void 0);(a||!!K)&&n?(l.invalidateQueries({queryKey:["conversations",n]}),mI({conversationId:W,message:F,queryClient:l}),pI({conversationId:W,message:F,queryClient:l})):r&&(l.invalidateQueries({queryKey:["conversations",r]}),mI({conversationId:W,message:F,queryClient:l}),pI({conversationId:W,message:F,queryClient:l}));},[r,n,a,s,i,l,H]),G=X.useCallback(L=>{let{messageId:F,reaction:O,count:B}=L;F&&O&&(N(_=>{var W,K,j;return z(y({},_),{[F]:z(y({},(W=_[F])!=null?W:{}),{[O]:B!=null?B:((j=(K=_[F])==null?void 0:K[O])!=null?j:0)+1})})}),l.invalidateQueries({queryKey:["message-reactions",F]}));},[l]);X.useEffect(()=>{if(!t||!T)return;let L=null,F=true;return Q(this,null,function*(){try{let{io:B}=yield import('socket.io-client');if(!F)return;let _={};a&&n&&(_.pageId=n),r&&(_.userId=r),L=B(t,{transports:["websocket","polling"],auth:{token:o!=null?o:""},query:_,autoConnect:!0}),L.on("connect",()=>{F&&g(!0);}),L.on("disconnect",()=>{F&&g(!1);}),L.on("userOnline",({userId:W})=>{F&&(w(K=>z(y({},K),{[W]:!0})),(c==null?void 0:c.id)===W&&d&&d(z(y({},c),{isOnline:!0})));}),L.on("userOffline",({userId:W})=>{F&&(w(K=>z(y({},K),{[W]:!1})),(c==null?void 0:c.id)===W&&d&&d(z(y({},c),{isOnline:!1})));}),L.on("onlineUsers",W=>{if(F&&W!=null&&W.users&&Array.isArray(W.users)){let K={};W.users.forEach(j=>{K[j]=!0;}),w(K);}}),L.on("newMessage",D),L.on("reaction",G),p(L);}catch(B){console.warn("Failed to connect socket:",B);}}),()=>{F=false,L==null||L.disconnect(),p(null);}},[t,o,T,a,r,n,D,G,c==null?void 0:c.id,d]);let V=X.useCallback(L=>{var F,O,B,_;if(m!=null&&m.connected){let W=L.pageId?(F=n!=null?n:r)!=null?F:"":(B=(O=L.senderId)!=null?O:r)!=null?B:"",K=z(y({},L),{userId:W,attachments:L==null?void 0:L.attachments});L.pageId&&(K.pageId=L.pageId,K.topic=(_=L.topic)!=null?_:""),m.emit("sendMessage",K);}},[m,r,n]);return {socket:m,isConnected:u,sendMessage:V,hasMessages:f,setHasMessages:v,onlineUsers:x,newMessages:h,realtimeReactions:C,messageAction:A}}function fI({chat:e,showBackButton:t,onBack:o,onGroupInfo:r,onContactInfo:n}){var a,s,i;return X__namespace.default.createElement("div",{className:"flex items-center justify-between bg-[#D0DEE533] p-4 md:m-4 md:rounded-[1rem] border-b border-border"},X__namespace.default.createElement("div",{className:"flex items-center gap-3"},t&&X__namespace.default.createElement("button",{onClick:o,className:"p-0 w-8 h-8 rounded-lg hover:bg-accent flex items-center justify-center"},X__namespace.default.createElement(lucideReact.ChevronLeft,{className:"w-5 h-5"})),X__namespace.default.createElement(se,{name:(a=e==null?void 0:e.name)!=null?a:"",src:(s=e==null?void 0:e.avatar)!=null?s:"",type:e!=null&&e.isGroup?"community":"user",className:"h-10 w-10"}),X__namespace.default.createElement("div",null,X__namespace.default.createElement("span",{className:"font-normal text-body-md md:text-[0.875rem] text-[#050910]"},dt((i=e==null?void 0:e.name)!=null?i:"")),X__namespace.default.createElement("p",{className:U("text-body-sm md:text-body-md",{"text-primary":e==null?void 0:e.isOnline,"text-text-secondary":!(e!=null&&e.isOnline)})},e!=null&&e.isOnline?"Online":"Offline"))),X__namespace.default.createElement("div",{className:"flex-shrink-0"},X__namespace.default.createElement(U5,{chat:e,asMessageHeader:true,onContactInfo:n,onGroupInfo:r,onBack:o})))}function gI({creatorName:e,conversationId:t}){var h,b,x;let{conversation:o,isLoadingConversation:r}=Gs(t!=null?t:""),{locale:n}=I(),[a,s]=X.useState(false),i=(o==null?void 0:o.name)||"",c=(h=o==null?void 0:o.description)!=null?h:"",d=(x=(b=o==null?void 0:o.participants)==null?void 0:b.map(w=>w==null?void 0:w.user))!=null?x:[],l=d.find(w=>(w==null?void 0:w.name)===e),m=(l==null?void 0:l.avatar)||(o==null?void 0:o.image),p=(c==null?void 0:c.length)>120,u=!p||a?c:c.slice(0,120)+"...",g=5,f=d==null?void 0:d.slice(0,g),v=Math.max(0,(d==null?void 0:d.length)-g);return r?X__namespace.default.createElement("div",{className:"w-full md:w-[22dvw] flex flex-col gap-4 items-center justify-center h-full rounded-md p-6"},X__namespace.default.createElement("div",{className:"w-16 h-16 rounded-full bg-gray-200 animate-pulse"}),X__namespace.default.createElement("div",{className:"h-4 w-32 bg-gray-200 rounded animate-pulse"}),X__namespace.default.createElement("div",{className:"h-3 w-48 bg-gray-200 rounded animate-pulse"}),X__namespace.default.createElement("div",{className:"flex -space-x-3 overflow-hidden mt-2"},[...Array(3)].map((w,C)=>X__namespace.default.createElement("div",{key:C,className:"w-8 h-8 rounded-full bg-gray-200 animate-pulse"})))):X__namespace.default.createElement("div",{className:"w-full md:w-[22dvw] flex flex-col gap-4 items-center justify-center h-full rounded-md p-6 "},X__namespace.default.createElement(se,{name:e||i,src:m,className:"w-16 h-16"}),X__namespace.default.createElement("p",{className:"text-body-sm md:text-body-lg font-bold text-text-secondary text-center"},q(n,"group-created",{name:e||i})),c&&X__namespace.default.createElement("div",{className:"text-center text-gray-600 text-sm md:text-base max-w-full"},X__namespace.default.createElement("p",null,u),p&&X__namespace.default.createElement("button",{className:"text-primary text-xs mt-1 !mx-auto hover:underline",onClick:()=>s(w=>!w)},a?lt(n,"explore.see-less"):lt(n,"explore.see-more"))),(d==null?void 0:d.length)>0&&X__namespace.default.createElement("div",{className:"flex -space-x-3 overflow-hidden mt-2 flex-wrap justify-center"},f.map(w=>{var C;return X__namespace.default.createElement("div",{key:w==null?void 0:w.id,className:"relative group"},X__namespace.default.createElement(se,{name:(C=w==null?void 0:w.name)!=null?C:"",src:w==null?void 0:w.avatar,className:"w-8 h-8 border-2 border-white rounded-full shadow-sm"}),X__namespace.default.createElement("span",{className:"absolute bottom-10 left-1/2 -translate-x-1/2 whitespace-nowrap bg-black text-white text-xs rounded-md px-2 py-1 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none"},w==null?void 0:w.name))}),v>0&&X__namespace.default.createElement("div",{className:"w-8 h-8 flex items-center justify-center bg-gray-200 text-gray-700 text-xs font-medium rounded-full border-2 border-white shadow-sm"},"+",v)))}function hI(e){if(!e)return;let t=e.match(/^(.*?)\s+created the group/i);return t?t[1]:void 0}var vI=e=>{let t=[],o="";return e.forEach(r=>{let n=r!=null&&r.createdAt?new Date(r==null?void 0:r.createdAt).toLocaleDateString():"Today";n!==o&&(o=n,t.push({type:"date",date:n})),t.push({type:"message",message:r});}),t};var bI=e=>{let t=e.find(o=>{var r;return (r=o==null?void 0:o.body)==null?void 0:r.toLowerCase().includes("created the group")});return t&&hI(t.body)||""};function Cp({isSent:e}){return X__namespace.default.createElement("div",{className:`flex ${e?"justify-end":"justify-start"} gap-2`},!e&&X__namespace.default.createElement(It,{className:"w-8 h-8 rounded-full bg-gray-200"}),X__namespace.default.createElement(It,{className:`h-16 ${e?"w-48":"w-64"} rounded-2xl bg-gray-200`}))}var xI=({date:e})=>X__namespace.default.createElement("div",{className:"flex items-center justify-center py-2"},X__namespace.default.createElement("span",{className:"px-3 py-1 bg-muted rounded-full text-xs text-muted-foreground"},e));function EJ(e){return X__namespace.createElement("svg",y({width:52,height:40,fill:"none"},e),X__namespace.createElement("path",{d:"M42.667 1H9.333C4.73 1 1 4.564 1 8.943V24.65c0 3.82 2.82 7.012 6.582 7.78l-1.758 5.203 8.138-5.011h28.705c4.6 0 8.333-3.564 8.333-7.944V8.973C51 4.564 47.267 1 42.667 1z",fill:"#F2F3F4",stroke:"#E4EBF1",strokeWidth:2,strokeMiterlimit:10}))}var kJ=X__namespace.memo(EJ),wI=kJ;function Z5(e){let t={"Content-Type":"application/json"};return e&&(t["x-access-token"]=e),t}function Y5(e){let {chatApiUrl:t,user:o,page:r}=I(),{conversationId:a,perPage:s=20,enabled:i=true,chatForPage:c=false}=typeof e=="object"&&e!==null&&"conversationId"in e?e:{conversationId:e,perPage:20,enabled:true,chatForPage:false},d=v5("messages",a!=null?a:"");return ut({queryKey:d,queryFn:m=>Q(this,[m],function*({pageParam:l=1}){var p,u,g,f,v,h,b,x,w,C;if(!a)return {messages:[],hasMore:false,meta:null,nextPage:1,lastPage:1};try{let N=Z5(o==null?void 0:o.accessToken),A={};c&&(r!=null&&r.id)&&(A.pageId=r.id);let P=yield t9__default.default(t!=null?t:"",e9,{conversationId:a,options:{filter:Object.keys(A).length>0?A:void 0,page:l,perPage:s}},N),M=P==null?void 0:P.getMessagesByConversation;return {messages:(p=M==null?void 0:M.data)!=null?p:[],hasMore:((g=(u=M==null?void 0:M.meta)==null?void 0:u.currentPage)!=null?g:0)<((v=(f=M==null?void 0:M.meta)==null?void 0:f.lastPage)!=null?v:0),meta:(h=M==null?void 0:M.meta)!=null?h:null,nextPage:((x=(b=M==null?void 0:M.meta)==null?void 0:b.currentPage)!=null?x:0)+1,lastPage:(C=(w=M==null?void 0:M.meta)==null?void 0:w.lastPage)!=null?C:1}}catch(N){return {messages:[],hasMore:false,meta:null,nextPage:1,lastPage:1}}}),getNextPageParam:l=>{if(l&&typeof l=="object"&&typeof(l==null?void 0:l.hasMore)=="boolean"&&typeof(l==null?void 0:l.nextPage)=="number")return l!=null&&l.hasMore?l==null?void 0:l.nextPage:void 0},initialPageParam:1,enabled:!!a&&i})}var CI=({chat:e,chatForPage:t,activeFilter:o,realtimeReactions:r,isSelectMode:n=false,selectedMessageIds:a=[],onSelectMessage:s,onClearSelection:i})=>{var V,L;let{user:c,page:d}=I(),{t:l}=ct(),m=X.useRef(null),p=X.useRef(null),u=X.useRef(true),g=X.useRef(0),f=X.useRef(void 0),[v,h]=X.useState(false),[b,x]=X.useState(true),[w,C]=X.useState(null),{markChatAsRead:N}=Gd((V=e==null?void 0:e.id)!=null?V:"",t,o),A=X.useCallback(()=>{var F;(F=m.current)==null||F.scrollIntoView({behavior:"smooth"});},[]),{data:P,isLoading:M,fetchNextPage:S,hasNextPage:E,isFetchingNextPage:T}=Y5({conversationId:(L=e==null?void 0:e.id)!=null?L:"",perPage:20,enabled:!!(e!=null&&e.id),chatForPage:t!=null?t:false}),k=X__namespace.default.useMemo(()=>{var O;return [...((O=P==null?void 0:P.pages)==null?void 0:O.flatMap(B=>B==null?void 0:B.messages))||[]].sort((B,_)=>{let W=new Date((B==null?void 0:B.createdAt)||0).getTime(),K=new Date((_==null?void 0:_.createdAt)||0).getTime();return W-K})},[P==null?void 0:P.pages]),H=e?vI(k):[],D=e!=null&&e.isGroup?bI(k):"";X.useEffect(()=>{!M&&(e!=null&&e.id)&&((e==null?void 0:e.unreadCount)||0)>0&&N(e==null?void 0:e.id);},[e==null?void 0:e.id,e==null?void 0:e.unreadCount,M,N]),X.useEffect(()=>{f.current!==(e==null?void 0:e.id)&&(u.current=true,h(false),x(true),C(null),f.current=e==null?void 0:e.id);},[e==null?void 0:e.id]),X.useEffect(()=>{let F=p.current;if(!F)return;let O=F.scrollTop,B,_=()=>{let{scrollTop:W,scrollHeight:K,clientHeight:j}=F;B&&clearTimeout(B);let R=W<O;O=W;let te=K-W-j<50;x(te),R&&!te&&h(true),B=setTimeout(()=>{h(false);},500);};return F.addEventListener("scroll",_),()=>{F.removeEventListener("scroll",_),B&&clearTimeout(B);}},[]),X.useEffect(()=>{let F=p.current;if(!F||!T||!E)return;let{scrollTop:O,scrollHeight:B}=F;C({top:O,height:B});},[T,E]),X.useEffect(()=>{let F=p.current;if(!F||!w||!T)return;let{top:O,height:B}=w,W=F.scrollHeight-B;F.scrollTop=O+W,C(null);},[T,w]),X.useEffect(()=>{let F=p.current;if(!F)return;let O=k.length,B=O>g.current;u.current&&!M&&O>0?(setTimeout(()=>{var _;(_=m.current)==null||_.scrollIntoView({behavior:"auto"});},100),u.current=false,g.current=O):!u.current&&B&&!v&&(F.scrollHeight-F.scrollTop-F.clientHeight<100&&setTimeout(()=>{var W;(W=m.current)==null||W.scrollIntoView({behavior:"smooth"});},50),g.current=O);},[k.length,M,v]);let G=()=>{let F=p.current;if(!F||!E||T)return;let{scrollTop:O}=F;O<100&&S();};return (k==null?void 0:k.length)===0&&!M?X__namespace.default.createElement("div",{className:"w-full h-full flex flex-col items-center justify-center"},X__namespace.default.createElement(wI,null),X__namespace.default.createElement("p",{className:"text-body-sm md:text-[1rem] text-[#050910]"},l("empty-conversation"))):X__namespace.default.createElement("div",{className:"relative flex-1 min-h-0"},X__namespace.default.createElement("div",{ref:p,className:"h-full overflow-y-auto p-4 flex flex-col scrollbar-hide",onScroll:G},T&&X__namespace.default.createElement("div",{className:"flex justify-center py-2"},X__namespace.default.createElement(De,null)),M?X__namespace.default.createElement("div",{className:"space-y-3"},X__namespace.default.createElement(Cp,{isSent:false}),X__namespace.default.createElement(Cp,{isSent:true}),X__namespace.default.createElement(Cp,{isSent:false}),X__namespace.default.createElement(Cp,{isSent:true})):X__namespace.default.createElement("div",{className:"space-y-1 mt-auto"},(e==null?void 0:e.isGroup)&&D&&X__namespace.default.createElement("div",{className:"flex justify-center w-full mb-6"},X__namespace.default.createElement(gI,{conversationId:e==null?void 0:e.id,creatorName:D})),H.filter(F=>{var O;if(e!=null&&e.isGroup&&F.type==="message"&&(F!=null&&F.message)){let B=F.message;return !((O=B==null?void 0:B.body)==null?void 0:O.toLowerCase().includes("created the group"))}return true}).map((F,O)=>{var B,_,W;if((F==null?void 0:F.type)==="date")return X__namespace.default.createElement(xI,{key:`date-${O}`,date:F==null?void 0:F.date});if((F==null?void 0:F.type)==="message"&&(F!=null&&F.message)){let K=F==null?void 0:F.message,j=t?(K==null?void 0:K.senderId)===(d==null?void 0:d.id)||((B=K==null?void 0:K.sender)==null?void 0:B.id)===(d==null?void 0:d.id):((_=K==null?void 0:K.sender)==null?void 0:_.id)===(c==null?void 0:c.id)||(K==null?void 0:K.senderId)===(c==null?void 0:c.id),R=a.includes((W=K==null?void 0:K.id)!=null?W:"");return X__namespace.default.createElement(h0,{key:K==null?void 0:K.id,message:K,selectedConversation:e,isOwnMessage:j,activeFilter:o,chatForPage:t,isSelectMode:n,isSelected:R,onSelectMessage:s,onClearSelection:i,realtimeReactions:r})}return null})),X__namespace.default.createElement("div",{ref:m})),X__namespace.default.createElement(react.AnimatePresence,null,!b&&X__namespace.default.createElement(react.motion.button,{key:"scroll-to-bottom",initial:{opacity:0,x:60},animate:{opacity:1,x:0},exit:{opacity:0,x:60},transition:{duration:.3,ease:"easeOut"},onClick:A,className:`\r
1618
1618
  absolute\r
1619
1619
  bottom-4\r
1620
1620
  right-4\r
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mirantes-micro/foundation-design-system",
3
3
  "description": "A scalable and customizable design system package featuring a collection of reusable React components, utility functions, and context providers. Built to enforce visual and functional consistency across applications, this package offers accessible, themeable UI elements, shared logic through utility helpers, and context-based providers for managing global state such as themes, modals, and user sessions.",
4
- "version": "1.2.198",
4
+ "version": "1.2.199",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Mirantes Frontend team"