群聊
This commit is contained in:
+19
-8
@@ -487,7 +487,7 @@ export const store = {
|
||||
return msg
|
||||
})
|
||||
const seen = new Set(incoming.map((m) => m.id).filter(Boolean))
|
||||
const extras = (conv.messages || []).filter((m) => m.mine && m.id && !seen.has(m.id) && Date.now() - Number(m.time) < 120000)
|
||||
const extras = (conv.messages || []).filter((m) => m.id && !seen.has(m.id) && (m.kind === 'system' || (m.mine && Date.now() - Number(m.time) < 120000)))
|
||||
conv.messages = incoming.concat(extras)
|
||||
conv.unread = 0
|
||||
await api.markRead(conv.id, this.token)
|
||||
@@ -794,12 +794,15 @@ export const store = {
|
||||
async createGroup(name, memberIds) {
|
||||
const ids = [...new Set([this.me && this.me.id, ...(memberIds || []).map(String)])].filter(Boolean)
|
||||
const title = String(name || '').trim() || '群聊'
|
||||
let sid = ''
|
||||
try {
|
||||
const data = await api.createGroup({ name: title, memberIds: ids }, this.token)
|
||||
sid = String((data && (data.id || data.sessionId)) || '')
|
||||
} catch (_) {}
|
||||
if (!sid) sid = 'g:' + Date.now()
|
||||
if (ids.length < 2) throw new Error('请至少再选一位同事')
|
||||
const data = await api.createGroup({
|
||||
title,
|
||||
name: title,
|
||||
memberIds: ids,
|
||||
members: ids
|
||||
}, this.token)
|
||||
const sid = String((data && (data.id || data.sessionId)) || '')
|
||||
if (!sid) throw new Error('创建失败')
|
||||
let conv = this.findConv(sid)
|
||||
if (!conv) {
|
||||
conv = {
|
||||
@@ -809,8 +812,16 @@ export const store = {
|
||||
avatar: '',
|
||||
peerId: '',
|
||||
memberIds: ids,
|
||||
messages: [],
|
||||
unread: 0,
|
||||
messages: [{
|
||||
id: 'sys-' + sid,
|
||||
kind: 'system',
|
||||
text: '你创建了群聊',
|
||||
time: Date.now(),
|
||||
mine: false,
|
||||
fromId: '',
|
||||
recalled: false
|
||||
}],
|
||||
lastMessage: '你创建了群聊',
|
||||
lastTime: fmtListTime(Date.now()),
|
||||
pinned: false,
|
||||
|
||||
Reference in New Issue
Block a user