mirror of
https://git-qiuchenly.yltfspace.com/QiuChenly/corepatch
synced 2025-11-25 12:39:26 +08:00
16 lines
1.1 KiB
JavaScript
16 lines
1.1 KiB
JavaScript
import{u as e,j as t,W as s,k as a}from"./BaSQ3xJt.js"
|
|
import{r as n,c as r}from"./CdD4XvnD.js"
|
|
const i=n(0),u=new Map
|
|
let o=!1
|
|
function l(){const{user:l}=e(),{queryUsersOnlineStatus:c,isConnected:v}=t()
|
|
o||(o=!0,window.addEventListener(s.USER_ONLINE_STATUS_UPDATED,e=>{const t=e,{userId:s,userIds:a,batch:n}=t.detail
|
|
i.value++}))
|
|
const U=n(new Map),d=e=>a.getUserOnlineStatus(e),S=e=>a.getUserLastActiveAt(e)
|
|
return{userOnlineStatusMap:U,getUserOnlineStatus:d,getUserLastActiveAt:S,isUserOnline:e=>{if(u.has(e))return u.get(e)
|
|
const t=r(()=>(i.value,!(!l.value||e!==l.value._id)||d(e)))
|
|
return u.set(e,t),t},isUserOnlineSync:e=>!(!l.value||e!==l.value._id)||d(e),formatLastActiveTime:e=>{const t=S(e)
|
|
if(!t)return"未知"
|
|
const s=(new Date).getTime()-t.getTime(),a=Math.floor(s/1e3),n=Math.floor(a/60),r=Math.floor(n/60),i=Math.floor(r/24)
|
|
return a<60?"刚刚":n<60?`${n}分钟前`:r<24?`${r}小时前`:i<7?`${i}天前`:t.toLocaleDateString("zh-CN")},queryUsersOnlineStatus:async e=>{var t
|
|
await a.queryUsersOnlineStatus(e,c,v.value,null==(t=l.value)?void 0:t._id)}}}export{l as u}
|