veza/apps/web/dist_verification/assets/chatStore-VE5eaeTh.js

2 lines
1.6 KiB
JavaScript
Raw Normal View History

2026-02-07 19:36:48 +00:00
import{l as g,t as d,F as f}from"./vendor-fFnFILYR.js";const m=g()(d(f(o=>({userId:null,username:null,currentConversationId:null,conversations:[],messages:{},typingUsers:{},wsToken:null,wsUrl:null,wsStatus:"disconnected",setUserId:(s,e)=>o(i=>{i.userId=s,i.username=e}),setWsToken:(s,e)=>o(i=>{i.wsToken=s,i.wsUrl=e}),setWsStatus:s=>o(e=>{e.wsStatus=s}),addConversation:s=>o(e=>{e.conversations.some(i=>i.id===s.id)||e.conversations.push(s)}),setCurrentConversation:s=>o(e=>{e.currentConversationId=s}),addMessage:s=>o(e=>{e.messages[s.conversation_id]||(e.messages[s.conversation_id]=[]),e.messages[s.conversation_id].push(s)}),loadMessages:(s,e)=>o(i=>{const r=i.messages[s]||[],c=new Set(e.map(a=>a.id)),n=[...r.filter(a=>!c.has(a.id)),...e];n.sort((a,l)=>new Date(a.created_at).getTime()-new Date(l.created_at).getTime()),i.messages[s]=n}),addReaction:(s,e,i,r)=>o(c=>{const t=c.messages[s];if(t){const n=t.find(a=>a.id===e);n&&(n.reactions||(n.reactions={}),Object.keys(n.reactions).forEach(a=>{n.reactions[a]=n.reactions[a].filter(l=>l!==i),n.reactions[a].length===0&&delete n.reactions[a]}),n.reactions[r]||(n.reactions[r]=[]),n.reactions[r].includes(i)||n.reactions[r].push(i))}}),removeReaction:(s,e,i)=>o(r=>{const c=r.messages[s];if(c){const t=c.find(n=>n.id===e);t&&t.reactions&&Object.keys(t.reactions).forEach(n=>{t.reactions[n]=t.reactions[n].filter(a=>a!==i),t.reactions[n].length===0&&delete t.reactions[n]})}}),setUserTyping:(s,e,i)=>o(r=>{r.typingUsers[s]||(r.typingUsers[s]=[]),i?r.typingUsers[s].includes(e)||r.typingUsers[s].push(e):r.typingUsers[s]=r.typingUsers[s].filter(c=>c!==e)})})),{name:"ChatStore",enabled:!1}));export{m as u};