@smart-link/im-base 1.0.1
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.
- package/REMAD.md +2 -0
- package/dist/DBAdapter.d.ts +60 -0
- package/dist/DBAdapter.js +151 -0
- package/dist/DBAdapter.js.map +1 -0
- package/dist/ImManager.d.ts +116 -0
- package/dist/ImManager.js +400 -0
- package/dist/ImManager.js.map +1 -0
- package/dist/api/api.config.d.ts +35 -0
- package/dist/api/api.config.js +40 -0
- package/dist/api/api.config.js.map +1 -0
- package/dist/api/index.d.ts +32 -0
- package/dist/api/index.js +29 -0
- package/dist/api/index.js.map +1 -0
- package/dist/constants.d.ts +192 -0
- package/dist/constants.js +181 -0
- package/dist/constants.js.map +1 -0
- package/dist/db/indexdb/index.d.ts +82 -0
- package/dist/db/indexdb/index.js +591 -0
- package/dist/db/indexdb/index.js.map +1 -0
- package/dist/db/indexdb/indexdb.config.d.ts +18 -0
- package/dist/db/indexdb/indexdb.config.js +117 -0
- package/dist/db/indexdb/indexdb.config.js.map +1 -0
- package/dist/db/sqlite/index.d.ts +65 -0
- package/dist/db/sqlite/index.js +687 -0
- package/dist/db/sqlite/index.js.map +1 -0
- package/dist/db/sqlite/scripts/db-script-1.0.0.d.ts +2 -0
- package/dist/db/sqlite/scripts/db-script-1.0.0.js +77 -0
- package/dist/db/sqlite/scripts/db-script-1.0.0.js.map +1 -0
- package/dist/db/sqlite/scripts/db-script-1.0.1.d.ts +2 -0
- package/dist/db/sqlite/scripts/db-script-1.0.1.js +7 -0
- package/dist/db/sqlite/scripts/db-script-1.0.1.js.map +1 -0
- package/dist/db/sqlite/sqlite.config.d.ts +11 -0
- package/dist/db/sqlite/sqlite.config.js +24 -0
- package/dist/db/sqlite/sqlite.config.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/interface.d.ts +386 -0
- package/dist/interface.js +3 -0
- package/dist/interface.js.map +1 -0
- package/dist/locales/en/im.d.ts +3 -0
- package/dist/locales/en/im.js +305 -0
- package/dist/locales/en/im.js.map +1 -0
- package/dist/locales/index.d.ts +4 -0
- package/dist/locales/index.js +28 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/locales/lao/im.d.ts +3 -0
- package/dist/locales/lao/im.js +305 -0
- package/dist/locales/lao/im.js.map +1 -0
- package/dist/locales/zh/im.d.ts +303 -0
- package/dist/locales/zh/im.js +307 -0
- package/dist/locales/zh/im.js.map +1 -0
- package/dist/slice/call/call.action.d.ts +1 -0
- package/dist/slice/call/call.action.js +518 -0
- package/dist/slice/call/call.action.js.map +1 -0
- package/dist/slice/call/call.slice.d.ts +29 -0
- package/dist/slice/call/call.slice.js +107 -0
- package/dist/slice/call/call.slice.js.map +1 -0
- package/dist/slice/collection/collection.action.d.ts +4 -0
- package/dist/slice/collection/collection.action.js +28 -0
- package/dist/slice/collection/collection.action.js.map +1 -0
- package/dist/slice/collection/collection.slice.d.ts +10 -0
- package/dist/slice/collection/collection.slice.js +33 -0
- package/dist/slice/collection/collection.slice.js.map +1 -0
- package/dist/slice/collection/index.d.ts +8 -0
- package/dist/slice/collection/index.js +30 -0
- package/dist/slice/collection/index.js.map +1 -0
- package/dist/slice/conversation/conversation.action.d.ts +47 -0
- package/dist/slice/conversation/conversation.action.js +507 -0
- package/dist/slice/conversation/conversation.action.js.map +1 -0
- package/dist/slice/conversation/conversation.slice.d.ts +39 -0
- package/dist/slice/conversation/conversation.slice.js +79 -0
- package/dist/slice/conversation/conversation.slice.js.map +1 -0
- package/dist/slice/conversation/index.d.ts +60 -0
- package/dist/slice/conversation/index.js +30 -0
- package/dist/slice/conversation/index.js.map +1 -0
- package/dist/slice/forward/forward.action.d.ts +8 -0
- package/dist/slice/forward/forward.action.js +100 -0
- package/dist/slice/forward/forward.action.js.map +1 -0
- package/dist/slice/forward/forward.slice.d.ts +17 -0
- package/dist/slice/forward/forward.slice.js +29 -0
- package/dist/slice/forward/forward.slice.js.map +1 -0
- package/dist/slice/forward/index.d.ts +11 -0
- package/dist/slice/forward/index.js +30 -0
- package/dist/slice/forward/index.js.map +1 -0
- package/dist/slice/getState.d.ts +8 -0
- package/dist/slice/getState.js +12 -0
- package/dist/slice/getState.js.map +1 -0
- package/dist/slice/group/group.action.d.ts +2 -0
- package/dist/slice/group/group.action.js +24 -0
- package/dist/slice/group/group.action.js.map +1 -0
- package/dist/slice/group/group.slice.d.ts +10 -0
- package/dist/slice/group/group.slice.js +33 -0
- package/dist/slice/group/group.slice.js.map +1 -0
- package/dist/slice/group/index.d.ts +8 -0
- package/dist/slice/group/index.js +32 -0
- package/dist/slice/group/index.js.map +1 -0
- package/dist/slice/index.d.ts +28 -0
- package/dist/slice/index.js +60 -0
- package/dist/slice/index.js.map +1 -0
- package/dist/slice/message/index.d.ts +47 -0
- package/dist/slice/message/index.js +31 -0
- package/dist/slice/message/index.js.map +1 -0
- package/dist/slice/message/message.action.d.ts +16 -0
- package/dist/slice/message/message.action.js +269 -0
- package/dist/slice/message/message.action.js.map +1 -0
- package/dist/slice/message/message.panel.action.d.ts +23 -0
- package/dist/slice/message/message.panel.action.js +234 -0
- package/dist/slice/message/message.panel.action.js.map +1 -0
- package/dist/slice/message/message.slice.d.ts +66 -0
- package/dist/slice/message/message.slice.js +119 -0
- package/dist/slice/message/message.slice.js.map +1 -0
- package/dist/slice/setting/index.d.ts +20 -0
- package/dist/slice/setting/index.js +31 -0
- package/dist/slice/setting/index.js.map +1 -0
- package/dist/slice/setting/setting.action.d.ts +8 -0
- package/dist/slice/setting/setting.action.js +94 -0
- package/dist/slice/setting/setting.action.js.map +1 -0
- package/dist/slice/setting/setting.slice.d.ts +18 -0
- package/dist/slice/setting/setting.slice.js +64 -0
- package/dist/slice/setting/setting.slice.js.map +1 -0
- package/dist/socket/emitter-call.d.ts +1 -0
- package/dist/socket/emitter-call.js +290 -0
- package/dist/socket/emitter-call.js.map +1 -0
- package/dist/socket/emitter-message.d.ts +15 -0
- package/dist/socket/emitter-message.js +341 -0
- package/dist/socket/emitter-message.js.map +1 -0
- package/dist/socket/listener/busi-notify.d.ts +3 -0
- package/dist/socket/listener/busi-notify.js +49 -0
- package/dist/socket/listener/busi-notify.js.map +1 -0
- package/dist/socket/listener/c2c.d.ts +5 -0
- package/dist/socket/listener/c2c.js +95 -0
- package/dist/socket/listener/c2c.js.map +1 -0
- package/dist/socket/listener/c2g.d.ts +4 -0
- package/dist/socket/listener/c2g.js +35 -0
- package/dist/socket/listener/c2g.js.map +1 -0
- package/dist/socket/listener/conversation.d.ts +3 -0
- package/dist/socket/listener/conversation.js +83 -0
- package/dist/socket/listener/conversation.js.map +1 -0
- package/dist/socket/listener/group-operate.d.ts +13 -0
- package/dist/socket/listener/group-operate.js +102 -0
- package/dist/socket/listener/group-operate.js.map +1 -0
- package/dist/socket/listener/index.d.ts +33 -0
- package/dist/socket/listener/index.js +33 -0
- package/dist/socket/listener/index.js.map +1 -0
- package/dist/socket/listener/one-2-one-call.d.ts +1 -0
- package/dist/socket/listener/one-2-one-call.js +200 -0
- package/dist/socket/listener/one-2-one-call.js.map +1 -0
- package/dist/socket/listener/session.d.ts +8 -0
- package/dist/socket/listener/session.js +91 -0
- package/dist/socket/listener/session.js.map +1 -0
- package/dist/socket/message-handler.d.ts +27 -0
- package/dist/socket/message-handler.js +436 -0
- package/dist/socket/message-handler.js.map +1 -0
- package/dist/socket/sync-subscribe.d.ts +8 -0
- package/dist/socket/sync-subscribe.js +408 -0
- package/dist/socket/sync-subscribe.js.map +1 -0
- package/dist/utils/carousel-lock.d.ts +7 -0
- package/dist/utils/carousel-lock.js +35 -0
- package/dist/utils/carousel-lock.js.map +1 -0
- package/dist/utils/conversation.d.ts +9 -0
- package/dist/utils/conversation.js +58 -0
- package/dist/utils/conversation.js.map +1 -0
- package/dist/utils/file.d.ts +3 -0
- package/dist/utils/file.js +53 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/guid.d.ts +1 -0
- package/dist/utils/guid.js +15 -0
- package/dist/utils/guid.js.map +1 -0
- package/dist/utils/message.d.ts +14 -0
- package/dist/utils/message.js +242 -0
- package/dist/utils/message.js.map +1 -0
- package/dist/utils/request.d.ts +41 -0
- package/dist/utils/request.js +72 -0
- package/dist/utils/request.js.map +1 -0
- package/dist/utils/time.d.ts +6 -0
- package/dist/utils/time.js +45 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/url.d.ts +1 -0
- package/dist/utils/url.js +22 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/version.d.ts +1 -0
- package/dist/utils/version.js +15 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +35 -0
@@ -0,0 +1,290 @@
|
|
1
|
+
"use strict";
|
2
|
+
// import {CallStatus, CallType, ConversationType, HangUpType, PayloadType, SocketEvent} from '../constants';
|
3
|
+
// import ImManager from '../ImManager';
|
4
|
+
// import {AsyncAction, Caller, IMessage} from '../interface';
|
5
|
+
// import {
|
6
|
+
// CallState,
|
7
|
+
// setCalleeId,
|
8
|
+
// setCalleeName,
|
9
|
+
// setCallerId,
|
10
|
+
// setCallerName,
|
11
|
+
// setCallerSession,
|
12
|
+
// setCallId,
|
13
|
+
// setCallStatus,
|
14
|
+
// setCallType,
|
15
|
+
// setShowCallPanel,
|
16
|
+
// setShowUserId,
|
17
|
+
// setShowUserName,
|
18
|
+
// } from '../slice/call/call.slice';
|
19
|
+
// import * as ConversationActions from '../slice/conversation/conversation.action';
|
20
|
+
// import * as MessageActions from '../slice/message/message.action';
|
21
|
+
// import {inConversationPage} from '../utils/conversation';
|
22
|
+
// import {numberToTime} from '../utils/time';
|
23
|
+
//
|
24
|
+
// import {buildNewConversation} from './message-handler';
|
25
|
+
//
|
26
|
+
// const getCallState = (getState: () => any) => getState()['chat/call'] as CallState;
|
27
|
+
//
|
28
|
+
// export async function emitOne2OneCallPrepare(imManager: ImManager, from: Caller, to: Caller) {
|
29
|
+
// const message = buildCallMessage(from, to);
|
30
|
+
// const resp: any = await imManager.emit(SocketEvent.ONE_2_ONE_CALL_PREPARE, message);
|
31
|
+
// console.log('resp', resp);
|
32
|
+
// if (!isSuccess(resp)) {
|
33
|
+
// throw new Error('call prepare error!');
|
34
|
+
// }
|
35
|
+
// return resp.data;
|
36
|
+
// }
|
37
|
+
//
|
38
|
+
// export async function emitOne2OneCallQuery(imManager: ImManager) {
|
39
|
+
// const resp: any = await imManager.emit(SocketEvent.ONE_2_ONE_CALL_QUERY);
|
40
|
+
// if (isSuccess(resp)) {
|
41
|
+
// const callInfo = resp.data;
|
42
|
+
// console.log('callInfo', callInfo);
|
43
|
+
// if (!callInfo) {
|
44
|
+
// return;
|
45
|
+
// }
|
46
|
+
//
|
47
|
+
// const caller = {
|
48
|
+
// id: callInfo.callerId,
|
49
|
+
// name: callInfo.callerName,
|
50
|
+
// };
|
51
|
+
//
|
52
|
+
// const callee = {
|
53
|
+
// id: callInfo.calleeId,
|
54
|
+
// name: callInfo.calleeName,
|
55
|
+
// };
|
56
|
+
//
|
57
|
+
// const {callId, callerSession, callType} = callInfo;
|
58
|
+
//
|
59
|
+
// const payload = {
|
60
|
+
// callId,
|
61
|
+
// callerSession,
|
62
|
+
// callType,
|
63
|
+
// };
|
64
|
+
//
|
65
|
+
// imManager.store.dispatch(onIncomingCall(imManager, caller, callee, payload));
|
66
|
+
// }
|
67
|
+
// }
|
68
|
+
//
|
69
|
+
// export const onIncomingCall: (imManager: ImManager, caller: Caller, callee: Caller, payload: any) => AsyncAction =
|
70
|
+
// (imManager, caller, callee, payload) => async (dispatch, getState) => {
|
71
|
+
// const {callId, callerSession, callType} = payload;
|
72
|
+
//
|
73
|
+
// if (getCallState(getState).callId) {
|
74
|
+
// await emitOne2OneCallBusy(imManager, callee, caller, {
|
75
|
+
// callId,
|
76
|
+
// callerSession,
|
77
|
+
// callType,
|
78
|
+
// callStatus: CallStatus.BUSY,
|
79
|
+
// });
|
80
|
+
// return;
|
81
|
+
// }
|
82
|
+
//
|
83
|
+
// dispatch(setShowCallPanel(true));
|
84
|
+
// dispatch(setCallId(callId));
|
85
|
+
// dispatch(setCallType(callType));
|
86
|
+
// dispatch(setCallerSession(callerSession));
|
87
|
+
// dispatch(setCallStatus(CallStatus.INCOMING));
|
88
|
+
// dispatch(setCallerId(caller.id));
|
89
|
+
// dispatch(setCallerName(caller.name));
|
90
|
+
// dispatch(setCalleeId(callee.id));
|
91
|
+
// dispatch(setCalleeName(callee.name));
|
92
|
+
// dispatch(setShowUserId(caller.id));
|
93
|
+
// dispatch(setShowUserName(caller.name));
|
94
|
+
// // @todo 处理webRtc
|
95
|
+
// // Webrtc.startCallingRing();
|
96
|
+
// };
|
97
|
+
//
|
98
|
+
// export async function emitOne2OneCallBusy(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
99
|
+
// console.log('emitOne2OneCallBusy', from, to, payload);
|
100
|
+
// const message = buildCallMessage(from, to, payload);
|
101
|
+
// const resp = await imManager.emit(SocketEvent.ONE_2_ONE_CALL_BUSY, message);
|
102
|
+
// if (resp.code === '0') {
|
103
|
+
// await insertCallMessage(imManager, resp.data, message, PayloadType.ONE_2_ONE_CALL_BUSY);
|
104
|
+
// await insertOrUpdateCallConversation(imManager, resp.data, message);
|
105
|
+
// }
|
106
|
+
// }
|
107
|
+
//
|
108
|
+
// export async function emitOne2OneCallDialing(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
109
|
+
// const message = buildCallMessage(from, to, payload);
|
110
|
+
// await imManager.emit(SocketEvent.ONE_2_ONE_CALL_DIALING, message);
|
111
|
+
// }
|
112
|
+
//
|
113
|
+
// export async function emitOne2OneCallAnswer(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
114
|
+
// const message = buildCallMessage(from, to, payload);
|
115
|
+
// await imManager.emit(SocketEvent.ONE_2_ONE_CALL_ANSWER, message);
|
116
|
+
// }
|
117
|
+
//
|
118
|
+
// export async function emitUserIceCandidate(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
119
|
+
// const message = buildCallMessage(from, to, payload);
|
120
|
+
// await imManager.emit(SocketEvent.USER_ICE_CANDIDATE, message);
|
121
|
+
// }
|
122
|
+
//
|
123
|
+
// export async function emitOne2OneCallCancel(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
124
|
+
// const message = buildCallMessage(from, to, payload);
|
125
|
+
// const resp = await imManager.emit(SocketEvent.ONE_2_ONE_CALL_CANCEL, message);
|
126
|
+
// if (resp.code === '0') {
|
127
|
+
// await insertCallMessage(imManager, resp.data, message, PayloadType.ONE_2_ONE_CALL_CANCEL);
|
128
|
+
// await insertOrUpdateCallConversation(imManager, resp.data, message);
|
129
|
+
// }
|
130
|
+
// }
|
131
|
+
//
|
132
|
+
// export async function emitOne2OneCallRejected(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
133
|
+
// const message = buildCallMessage(from, to, payload);
|
134
|
+
// const resp = await imManager.emit(SocketEvent.ONE_2_ONE_CALL_REJECTED, message);
|
135
|
+
// if (resp.code === '0') {
|
136
|
+
// await insertCallMessage(imManager, resp.data, message, PayloadType.ONE_2_ONE_CALL_REJECTED);
|
137
|
+
// await insertOrUpdateCallConversation(imManager, resp.data, message);
|
138
|
+
// }
|
139
|
+
// }
|
140
|
+
//
|
141
|
+
// export async function emitOne2OneCallHangUp(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
142
|
+
// const message = buildCallMessage(from, to, payload);
|
143
|
+
// const resp: any = await imManager.emit(SocketEvent.ONE_2_ONE_CALL_HANG_UP, message);
|
144
|
+
// if (resp.code === '0') {
|
145
|
+
// await insertCallMessage(imManager, resp.data, message, PayloadType.ONE_2_ONE_CALL_HANG_UP);
|
146
|
+
// await insertOrUpdateCallConversation(imManager, resp.data, message);
|
147
|
+
// }
|
148
|
+
// }
|
149
|
+
//
|
150
|
+
// export async function emitOne2OneCallSwitchVoice(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
151
|
+
// const message = buildCallMessage(from, to, payload);
|
152
|
+
// await imManager.emit(SocketEvent.ONE_2_ONE_CALL_SWITCH_VOICE, message);
|
153
|
+
// }
|
154
|
+
//
|
155
|
+
// export async function emitOne2OneCallConnected(imManager: ImManager, from: Caller, to: Caller, payload: any) {
|
156
|
+
// const message = buildCallMessage(from, to, payload);
|
157
|
+
// await imManager.emit(SocketEvent.ONE_2_ONE_CALL_CONNECTED, message);
|
158
|
+
// }
|
159
|
+
//
|
160
|
+
// function isSuccess(resp: any) {
|
161
|
+
// return resp && resp.code && resp.code === '0';
|
162
|
+
// }
|
163
|
+
//
|
164
|
+
// function buildCallMessage(from: Caller, to: Caller, payload?: any) {
|
165
|
+
// return {
|
166
|
+
// messageFrom: from.id,
|
167
|
+
// messageFromName: from.name,
|
168
|
+
// messageTo: to.id,
|
169
|
+
// messageToName: to.name,
|
170
|
+
// conversationId: to.id,
|
171
|
+
// conversationType: ConversationType.C2C,
|
172
|
+
// payload,
|
173
|
+
// } as IMessage;
|
174
|
+
// }
|
175
|
+
//
|
176
|
+
// async function insertCallMessage(imManager: ImManager, respData: any, message: IMessage, payloadType: PayloadType) {
|
177
|
+
// const conversationId = message.messageTo;
|
178
|
+
// const callText = getCallText(imManager, message);
|
179
|
+
//
|
180
|
+
// const tMessage = {
|
181
|
+
// ...respData,
|
182
|
+
// ...message,
|
183
|
+
// isMyMessage: true,
|
184
|
+
// payloadType: payloadType,
|
185
|
+
// payload: {
|
186
|
+
// ...message.payload,
|
187
|
+
// callText,
|
188
|
+
// },
|
189
|
+
// };
|
190
|
+
//
|
191
|
+
// await imManager.db.insertMessage(tMessage);
|
192
|
+
//
|
193
|
+
// //更新订阅序列
|
194
|
+
// const subscribe = {
|
195
|
+
// subscribeId: message.messageFrom,
|
196
|
+
// lastMessageSeq: tMessage.messageSeq,
|
197
|
+
// };
|
198
|
+
//
|
199
|
+
// await imManager.db.insertOrUpdateSubscribeMessageSeq(subscribe);
|
200
|
+
//
|
201
|
+
// //更新视图
|
202
|
+
// inConversationPage(imManager, conversationId) &&
|
203
|
+
// imManager.store.dispatch(MessageActions.addMessage(tMessage, false));
|
204
|
+
// }
|
205
|
+
//
|
206
|
+
// async function insertOrUpdateCallConversation(imManager: ImManager, respData: any, message: IMessage) {
|
207
|
+
// const {
|
208
|
+
// messageTo: id,
|
209
|
+
// messageToName: name,
|
210
|
+
// payload: {callType},
|
211
|
+
// } = message;
|
212
|
+
//
|
213
|
+
// const time = respData.messageTime;
|
214
|
+
// const text =
|
215
|
+
// (callType === CallType.VOICE ? '[' + imManager.t('voiceCall') + ']' : '[' + imManager.t('videoCall') + ']') +
|
216
|
+
// getCallText(imManager, message);
|
217
|
+
//
|
218
|
+
// let tConversation = await imManager.db.selectConversationById(id);
|
219
|
+
// if (tConversation) {
|
220
|
+
// await imManager.db.updateConversationById({
|
221
|
+
// id,
|
222
|
+
// text,
|
223
|
+
// time,
|
224
|
+
// });
|
225
|
+
// } else {
|
226
|
+
// tConversation = await buildNewConversation(imManager, {
|
227
|
+
// id,
|
228
|
+
// type: ConversationType.C2C,
|
229
|
+
// name,
|
230
|
+
// text,
|
231
|
+
// time,
|
232
|
+
// unreadCount: 0,
|
233
|
+
// lastMessageSeq: null,
|
234
|
+
// messageSeq: null,
|
235
|
+
// errorText: null,
|
236
|
+
// tipsList: [],
|
237
|
+
// });
|
238
|
+
// await imManager.db.insertConversation(tConversation);
|
239
|
+
// }
|
240
|
+
//
|
241
|
+
// imManager.store.dispatch(ConversationActions.loadConversations(imManager));
|
242
|
+
// }
|
243
|
+
//
|
244
|
+
// function getCallText(imManager: ImManager, message: IMessage) {
|
245
|
+
// let callText = '';
|
246
|
+
// const {
|
247
|
+
// payload: {hangUpType = HangUpType.NORMAL, callDuration, callStatus},
|
248
|
+
// } = message;
|
249
|
+
//
|
250
|
+
// switch (callStatus) {
|
251
|
+
// case CallStatus.CANCEL: {
|
252
|
+
// callText = imManager.t('cancelled2');
|
253
|
+
// break;
|
254
|
+
// }
|
255
|
+
// case CallStatus.REJECTED: {
|
256
|
+
// callText = imManager.t('rejected2');
|
257
|
+
// break;
|
258
|
+
// }
|
259
|
+
// case CallStatus.BUSY: {
|
260
|
+
// callText = imManager.t('callBusyNotAnswered');
|
261
|
+
// break;
|
262
|
+
// }
|
263
|
+
// case CallStatus.HANGUP: {
|
264
|
+
// switch (hangUpType) {
|
265
|
+
// case HangUpType.TIMEOUT: {
|
266
|
+
// callText = imManager.t('callTimeout');
|
267
|
+
// break;
|
268
|
+
// }
|
269
|
+
// case HangUpType.NORMAL: {
|
270
|
+
// callText = imManager.t('callTime', {time: numberToTime(callDuration)});
|
271
|
+
// break;
|
272
|
+
// }
|
273
|
+
// case HangUpType.CONNECT_ERROR: {
|
274
|
+
// callText = imManager.t('callException2');
|
275
|
+
// break;
|
276
|
+
// }
|
277
|
+
// case HangUpType.DISCONNECTED: {
|
278
|
+
// callText = imManager.t('netExceptionHandUp2'); //(DataTools.numberToTime(callDuration));
|
279
|
+
// break;
|
280
|
+
// }
|
281
|
+
// }
|
282
|
+
// break;
|
283
|
+
// }
|
284
|
+
// }
|
285
|
+
//
|
286
|
+
// console.log('getCallText', callText);
|
287
|
+
// return callText;
|
288
|
+
// }
|
289
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
290
|
+
//# sourceMappingURL=emitter-call.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"emitter-call.js","sourceRoot":"","sources":["../../src/socket/emitter-call.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import { PayloadType } from '../constants';
|
2
|
+
import ImManager from '../ImManager';
|
3
|
+
import { IConversation, IMessage, IUser, IPayload, ICollection } from '../interface';
|
4
|
+
export declare function emitTextMessage(imManager: ImManager, user: IUser, conversation: IConversation, payload: IPayload): Promise<void>;
|
5
|
+
export declare function emitVoiceMessage(imManager: ImManager, user: IUser, conversation: IConversation, recordInfo: IPayload): Promise<void>;
|
6
|
+
export declare function emitPictureMessage(imManager: ImManager, user: IUser, conversation: IConversation, picture: IPayload): Promise<void>;
|
7
|
+
export declare function emitVideoMessage(imManager: ImManager, user: IUser, conversation: IConversation, video: IPayload): Promise<void>;
|
8
|
+
export declare function emitFileMessage(imManager: ImManager, user: IUser, conversation: IConversation, file: IPayload): Promise<void>;
|
9
|
+
export declare function emitContactMessage(imManager: ImManager, user: IUser, conversation: IConversation, contact: IUser): Promise<void>;
|
10
|
+
export declare function emitMessage(imManager: ImManager, user: IUser, conversation: IConversation, payloadType: PayloadType, payload: IPayload): Promise<void>;
|
11
|
+
export declare function undoMessage(imManager: ImManager, message: IMessage): Promise<void>;
|
12
|
+
export declare function resendMessage(imManager: ImManager, user: IUser, conversation: IConversation, message: IMessage): Promise<void>;
|
13
|
+
export declare function emitForwardMessage(imManager: ImManager, user: IUser, conversation: IConversation, message: IMessage): Promise<void>;
|
14
|
+
export declare function emitCollectionMessage(imManager: ImManager, conversation: IConversation, message: ICollection): Promise<void>;
|
15
|
+
export declare const handleSend: (imManager: ImManager, text: string) => Promise<void>;
|
@@ -0,0 +1,341 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
32
|
+
});
|
33
|
+
};
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
35
|
+
exports.handleSend = exports.emitCollectionMessage = exports.emitForwardMessage = exports.resendMessage = exports.undoMessage = exports.emitMessage = exports.emitContactMessage = exports.emitFileMessage = exports.emitVideoMessage = exports.emitPictureMessage = exports.emitVoiceMessage = exports.emitTextMessage = void 0;
|
36
|
+
const constants_1 = require("../constants");
|
37
|
+
const ConversationActions = __importStar(require("../slice/conversation/conversation.action"));
|
38
|
+
const message_1 = require("../slice/message");
|
39
|
+
const conversation_1 = require("../utils/conversation");
|
40
|
+
const guid_1 = require("../utils/guid");
|
41
|
+
const message_2 = require("../utils/message");
|
42
|
+
const request_1 = require("../utils/request");
|
43
|
+
const time_1 = require("../utils/time");
|
44
|
+
const lodash_1 = require("lodash");
|
45
|
+
const getState_1 = require("../slice/getState");
|
46
|
+
function emitTextMessage(imManager, user, conversation, payload) {
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
48
|
+
yield emitMessage(imManager, user, conversation, constants_1.PayloadType.TEXT, payload);
|
49
|
+
});
|
50
|
+
}
|
51
|
+
exports.emitTextMessage = emitTextMessage;
|
52
|
+
function emitVoiceMessage(imManager, user, conversation, recordInfo) {
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
54
|
+
yield emitMessage(imManager, user, conversation, constants_1.PayloadType.VOICE, recordInfo);
|
55
|
+
});
|
56
|
+
}
|
57
|
+
exports.emitVoiceMessage = emitVoiceMessage;
|
58
|
+
function emitPictureMessage(imManager, user, conversation, picture) {
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
60
|
+
yield emitMessage(imManager, user, conversation, constants_1.PayloadType.PICTURE, picture);
|
61
|
+
});
|
62
|
+
}
|
63
|
+
exports.emitPictureMessage = emitPictureMessage;
|
64
|
+
function emitVideoMessage(imManager, user, conversation, video) {
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
66
|
+
yield emitMessage(imManager, user, conversation, constants_1.PayloadType.VIDEO, video);
|
67
|
+
});
|
68
|
+
}
|
69
|
+
exports.emitVideoMessage = emitVideoMessage;
|
70
|
+
function emitFileMessage(imManager, user, conversation, file) {
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
72
|
+
yield emitMessage(imManager, user, conversation, constants_1.PayloadType.FILE, file);
|
73
|
+
});
|
74
|
+
}
|
75
|
+
exports.emitFileMessage = emitFileMessage;
|
76
|
+
// export async function emitStaticEmojiMessage(
|
77
|
+
// imManager: ImManager,
|
78
|
+
// user: IUser,
|
79
|
+
// conversation: IConversation,
|
80
|
+
// {emojiType, emojiKey}: any,
|
81
|
+
// ) {
|
82
|
+
// const payload = {
|
83
|
+
// emojiType,
|
84
|
+
// emojiKey,
|
85
|
+
// };
|
86
|
+
// await emitMessage(imManager, user, conversation, PayloadType.STATIC_EMOJI, payload);
|
87
|
+
// }
|
88
|
+
function emitContactMessage(imManager, user, conversation, contact) {
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
90
|
+
const payload = {
|
91
|
+
contact,
|
92
|
+
};
|
93
|
+
yield emitMessage(imManager, user, conversation, constants_1.PayloadType.CONTACT, payload);
|
94
|
+
});
|
95
|
+
}
|
96
|
+
exports.emitContactMessage = emitContactMessage;
|
97
|
+
function emitMessage(imManager, user, conversation, payloadType, payload) {
|
98
|
+
return __awaiter(this, void 0, void 0, function* () {
|
99
|
+
payload.avatars = conversation.type === 'c2c' ? user.avatars : conversation.avatars;
|
100
|
+
setConversationText(imManager, conversation, payloadType, payload);
|
101
|
+
let messageStatus = constants_1.MessageStatus.EMITTING, errorText = null;
|
102
|
+
const currentTime = new Date().getTime();
|
103
|
+
//更新消息视图,插入发送队列
|
104
|
+
let tMessage = buildEmittingMessage(user, conversation, {
|
105
|
+
messageStatus,
|
106
|
+
payloadType: payloadType,
|
107
|
+
payload,
|
108
|
+
});
|
109
|
+
console.log('buildEmittingMessage', tMessage);
|
110
|
+
(0, conversation_1.inConversationPage)(imManager, conversation.id) &&
|
111
|
+
imManager.store.dispatch(message_1.MessageActions.addMessage(imManager, tMessage));
|
112
|
+
yield imManager.db.insertMessageEmitting(tMessage);
|
113
|
+
//更新会话视图及db
|
114
|
+
let tConversation = {
|
115
|
+
id: conversation.id,
|
116
|
+
text: '[' + imManager.t('sending') + ']' + conversation.text,
|
117
|
+
time: currentTime,
|
118
|
+
};
|
119
|
+
//上传
|
120
|
+
try {
|
121
|
+
if (imManager.beforeUpload) {
|
122
|
+
yield imManager.beforeUpload(payload, payloadType);
|
123
|
+
}
|
124
|
+
const timeHolder = { updateTime: 0 };
|
125
|
+
yield uploadPayload(imManager, payloadType, payload, event => {
|
126
|
+
console.log('uploadPayload: ', event);
|
127
|
+
if ((0, time_1.shouldUpdate)(timeHolder)) {
|
128
|
+
(0, conversation_1.inConversationPage)(imManager, conversation.id) &&
|
129
|
+
imManager.store.dispatch(message_1.MessageActions.updateMessage(tMessage.messageSeq, {
|
130
|
+
sendSize: event.loaded,
|
131
|
+
payload
|
132
|
+
}));
|
133
|
+
}
|
134
|
+
});
|
135
|
+
}
|
136
|
+
catch (e) {
|
137
|
+
console.warn('uploadPayload error ', e);
|
138
|
+
yield preEmitError(imManager, tMessage, conversation);
|
139
|
+
return;
|
140
|
+
}
|
141
|
+
//消息预占
|
142
|
+
console.log('prepareData: ', constants_1.SocketEvent.MESSAGE_PREPARE);
|
143
|
+
let resp = yield imManager.emit(constants_1.SocketEvent.MESSAGE_PREPARE);
|
144
|
+
if (!(0, request_1.isSuccess)(resp)) {
|
145
|
+
console.warn('MESSAGE_PREPARE error ', resp);
|
146
|
+
yield preEmitError(imManager, tMessage, conversation);
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
//预占成功发送消息
|
150
|
+
const prepareData = resp.data;
|
151
|
+
//从消息发送队列中删除,插入消息表
|
152
|
+
const emittingSeq = tMessage.messageSeq;
|
153
|
+
yield imManager.db.deleteMessageEmittingByPK(tMessage.messageSeq);
|
154
|
+
tMessage = Object.assign(Object.assign(Object.assign(Object.assign({}, tMessage), prepareData), { messageStatus: constants_1.MessageStatus.EMITTED, emittingSeq, searchText: (0, message_2.buildSearchText)(tMessage) }));
|
155
|
+
yield imManager.db.insertMessage(tMessage);
|
156
|
+
const socketData = buildEmittingMessageSocketData(prepareData, user, conversation, {
|
157
|
+
payloadType: payloadType,
|
158
|
+
payload: Object.assign(Object.assign({}, payload), { localPath: undefined, imagePath: undefined }),
|
159
|
+
});
|
160
|
+
let event;
|
161
|
+
if (conversation.type === constants_1.ConversationType.C2C) {
|
162
|
+
event = constants_1.SocketEvent.C2C_CHAT_MESSAGE;
|
163
|
+
}
|
164
|
+
else {
|
165
|
+
event = constants_1.SocketEvent.C2G_CHAT_MESSAGE;
|
166
|
+
}
|
167
|
+
console.log('emit: ', event, socketData);
|
168
|
+
resp = yield imManager.emit(event, socketData);
|
169
|
+
if ((0, request_1.isSuccess)(resp)) {
|
170
|
+
messageStatus = constants_1.MessageStatus.EMITTED;
|
171
|
+
errorText = null;
|
172
|
+
}
|
173
|
+
else {
|
174
|
+
console.log('emit error');
|
175
|
+
messageStatus = constants_1.MessageStatus.EMIT_ERROR;
|
176
|
+
errorText = imManager.t('sendFail');
|
177
|
+
}
|
178
|
+
const updateMessage = {
|
179
|
+
messageSeq: tMessage.messageSeq,
|
180
|
+
messageStatus,
|
181
|
+
};
|
182
|
+
yield imManager.db.updateMessageStatus(updateMessage);
|
183
|
+
tMessage = Object.assign(Object.assign({}, tMessage), updateMessage);
|
184
|
+
//更新视图
|
185
|
+
(0, conversation_1.inConversationPage)(imManager, conversation.id) &&
|
186
|
+
imManager.store.dispatch(message_1.MessageActions.updateMessage(emittingSeq, Object.assign({}, tMessage)));
|
187
|
+
//更新会话
|
188
|
+
Object.assign(tConversation, {
|
189
|
+
time: prepareData.messageTime,
|
190
|
+
text: conversation.text,
|
191
|
+
errorText: errorText,
|
192
|
+
});
|
193
|
+
yield imManager.db.updateConversationById(tConversation);
|
194
|
+
imManager.store.dispatch(ConversationActions.loadConversations(imManager));
|
195
|
+
//更新订阅序列
|
196
|
+
const subscribe = {
|
197
|
+
subscribeId: conversation.spreadType && conversation.spreadType === constants_1.SpreadType.READ ? conversation.id : user.userId,
|
198
|
+
lastMessageSeq: tMessage.messageSeq,
|
199
|
+
};
|
200
|
+
yield imManager.db.insertOrUpdateSubscribeMessageSeq(subscribe);
|
201
|
+
});
|
202
|
+
}
|
203
|
+
exports.emitMessage = emitMessage;
|
204
|
+
function buildEmittingMessage(user, conversation, ext) {
|
205
|
+
return Object.assign({ messageSeq: 'emitting_' + (0, guid_1.guid)(), messageTime: new Date().getTime(), conversationId: conversation.id, conversationType: conversation.type, messageFrom: user.userId, messageFromName: user.userName, messageTo: conversation.id, messageToName: conversation.name, isMyMessage: true }, ext);
|
206
|
+
}
|
207
|
+
function buildEmittingMessageSocketData(prepareData, user, conversation, ext) {
|
208
|
+
return Object.assign(Object.assign(Object.assign({}, prepareData), { messageFrom: user.userId, messageFromName: user.userName, messageTo: conversation.id, messageToName: conversation.name }), ext);
|
209
|
+
}
|
210
|
+
function uploadPayload(imManager, payloadType, payload, onUploadProgress) {
|
211
|
+
return __awaiter(this, void 0, void 0, function* () {
|
212
|
+
//已经上传过消息了
|
213
|
+
if (payload.fileId) {
|
214
|
+
return;
|
215
|
+
}
|
216
|
+
if (payloadType === constants_1.PayloadType.TEXT ||
|
217
|
+
payloadType === constants_1.PayloadType.MULTIPLE ||
|
218
|
+
payloadType === constants_1.PayloadType.STATIC_EMOJI ||
|
219
|
+
payloadType === constants_1.PayloadType.CONTACT ||
|
220
|
+
payloadType === constants_1.PayloadType.SHARE) {
|
221
|
+
return;
|
222
|
+
}
|
223
|
+
if (!payload.localPath) {
|
224
|
+
return;
|
225
|
+
}
|
226
|
+
let param = {
|
227
|
+
filename: payload.filename,
|
228
|
+
size: payload.size,
|
229
|
+
localPath: payload.localPath,
|
230
|
+
type: payload.type,
|
231
|
+
lastModified: payload.lastModified,
|
232
|
+
};
|
233
|
+
let fileId = yield imManager.uploadFile(param, onUploadProgress);
|
234
|
+
console.log('uploadResp payload:', fileId);
|
235
|
+
if (fileId) {
|
236
|
+
payload.fileId = fileId;
|
237
|
+
}
|
238
|
+
});
|
239
|
+
}
|
240
|
+
function preEmitError(imManager, message, conversation) {
|
241
|
+
return __awaiter(this, void 0, void 0, function* () {
|
242
|
+
const messageUpdate = {
|
243
|
+
messageSeq: message.messageSeq,
|
244
|
+
messageStatus: constants_1.MessageStatus.EMIT_ERROR,
|
245
|
+
};
|
246
|
+
yield imManager.db.updateMessageEmitting(messageUpdate);
|
247
|
+
(0, conversation_1.inConversationPage)(imManager, conversation.id) &&
|
248
|
+
imManager.store.dispatch(message_1.MessageActions.updateMessage(message.messageSeq, messageUpdate));
|
249
|
+
const conversationUpdate = {
|
250
|
+
id: conversation.id,
|
251
|
+
text: conversation.text,
|
252
|
+
errorText: imManager.t('sendFail'),
|
253
|
+
};
|
254
|
+
yield imManager.db.updateConversationById(conversationUpdate);
|
255
|
+
imManager.store.dispatch(ConversationActions.loadConversations(imManager));
|
256
|
+
});
|
257
|
+
}
|
258
|
+
function undoMessage(imManager, message) {
|
259
|
+
return __awaiter(this, void 0, void 0, function* () {
|
260
|
+
const { messageSeq, conversationId, conversationType } = message;
|
261
|
+
//发送撤回消息
|
262
|
+
const event = conversationType === constants_1.ConversationType.C2G
|
263
|
+
? constants_1.SocketEvent.C2G_CHAT_MESSAGE_UNDO
|
264
|
+
: constants_1.SocketEvent.C2C_CHAT_MESSAGE_UNDO;
|
265
|
+
const socketData = Object.assign(Object.assign({}, message), { payloadType: constants_1.PayloadType.CONVERSATION_MESSAGE_UNDO, payload: {
|
266
|
+
undoMessageSeq: messageSeq,
|
267
|
+
}, undoMessageSeq: messageSeq });
|
268
|
+
console.log('undoMessage', socketData);
|
269
|
+
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
|
270
|
+
// @todo 撤回事件无响应
|
271
|
+
const resp = yield imManager.emit(event, socketData);
|
272
|
+
console.log('undoMessage resp', resp);
|
273
|
+
if (!(0, request_1.isSuccess)(resp)) {
|
274
|
+
console.log('undoMessage error', resp);
|
275
|
+
}
|
276
|
+
}));
|
277
|
+
//更新db
|
278
|
+
yield imManager.db.updateMessage({
|
279
|
+
messageSeq: messageSeq,
|
280
|
+
messageStatus: constants_1.MessageStatus.UNDO,
|
281
|
+
});
|
282
|
+
//更新视图
|
283
|
+
imManager.store.dispatch(message_1.MessageActions.updateMessage(messageSeq, Object.assign(Object.assign({}, message), { messageStatus: constants_1.MessageStatus.UNDO })));
|
284
|
+
//更新会话
|
285
|
+
const updateData = {
|
286
|
+
id: conversationId,
|
287
|
+
text: imManager.t('youWithdrawMsg'),
|
288
|
+
};
|
289
|
+
yield imManager.db.updateConversationById(updateData);
|
290
|
+
imManager.store.dispatch(ConversationActions.updateConversation(updateData));
|
291
|
+
});
|
292
|
+
}
|
293
|
+
exports.undoMessage = undoMessage;
|
294
|
+
function resendMessage(imManager, user, conversation, message) {
|
295
|
+
return __awaiter(this, void 0, void 0, function* () {
|
296
|
+
const { messageSeq, payloadType, payload } = message;
|
297
|
+
//删除原有失败的消息
|
298
|
+
yield imManager.db.deleteMessageEmittingByPK(messageSeq);
|
299
|
+
yield imManager.db.deleteMessageByPK(messageSeq);
|
300
|
+
//删除后更新视图
|
301
|
+
imManager.store.dispatch(message_1.MessageActions.deleteMessage(messageSeq));
|
302
|
+
//获取payload 重新发送
|
303
|
+
yield emitMessage(imManager, user, (0, lodash_1.cloneDeep)(conversation), payloadType, (0, lodash_1.cloneDeep)(payload));
|
304
|
+
});
|
305
|
+
}
|
306
|
+
exports.resendMessage = resendMessage;
|
307
|
+
function setConversationText(imManager, conversation, payloadType, payload) {
|
308
|
+
conversation.text = (0, message_2.buildSimpleText)(imManager, payloadType, payload);
|
309
|
+
}
|
310
|
+
function emitForwardMessage(imManager, user, conversation, message) {
|
311
|
+
return __awaiter(this, void 0, void 0, function* () {
|
312
|
+
const { payloadType } = message;
|
313
|
+
const payload = Object.assign(Object.assign({}, message.payload), { avatars: user.avatars, quoteTitle: null, quoteText: null, atList: [] });
|
314
|
+
yield emitMessage(imManager, user, conversation, payloadType, payload);
|
315
|
+
});
|
316
|
+
}
|
317
|
+
exports.emitForwardMessage = emitForwardMessage;
|
318
|
+
function emitCollectionMessage(imManager, conversation, message) {
|
319
|
+
return __awaiter(this, void 0, void 0, function* () {
|
320
|
+
const { payloadType } = message;
|
321
|
+
const user = imManager.user;
|
322
|
+
const payload = Object.assign(Object.assign({}, message.payload), { avatars: user.avatars, quoteTitle: null, quoteText: null, atList: [] });
|
323
|
+
yield emitMessage(imManager, user, conversation, payloadType, payload);
|
324
|
+
});
|
325
|
+
}
|
326
|
+
exports.emitCollectionMessage = emitCollectionMessage;
|
327
|
+
const handleSend = (imManager, text) => __awaiter(void 0, void 0, void 0, function* () {
|
328
|
+
const { currentConversation } = (0, getState_1.getConversationState)(imManager.store.getState);
|
329
|
+
const { quote, atUsers } = (0, getState_1.getMessageState)(imManager.store.getState);
|
330
|
+
imManager.store.dispatch(message_1.MessageActions.setAtUsers([]));
|
331
|
+
imManager.store.dispatch(message_1.MessageActions.setQuote(null));
|
332
|
+
imManager.store.dispatch(message_1.MessageActions.setDraftText(''));
|
333
|
+
const atList = atUsers.filter(item => text.includes('@' + item.memberName));
|
334
|
+
yield emitTextMessage(imManager, imManager.user, (0, lodash_1.cloneDeep)(currentConversation), {
|
335
|
+
text,
|
336
|
+
quote: (0, lodash_1.cloneDeep)(quote),
|
337
|
+
atList: atList,
|
338
|
+
});
|
339
|
+
});
|
340
|
+
exports.handleSend = handleSend;
|
341
|
+
//# sourceMappingURL=emitter-message.js.map
|