@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,47 @@
|
|
1
|
+
declare const MessageActions: {
|
2
|
+
getMessageFromState(messageSeq: string, getState: any): import("../..").IMessage | undefined;
|
3
|
+
addMessage: (imManager: import("../../ImManager").default, message: import("../..").IChatMessage, download?: boolean | undefined) => import("../..").AsyncAction;
|
4
|
+
updateMessage: (messageSeq: string, message: Partial<import("../..").IMessage>) => import("../..").AsyncAction;
|
5
|
+
updateMessageStatus: (message: Partial<import("../..").IMessage>) => import("../..").AsyncAction;
|
6
|
+
addMessages: (imManager: import("../../ImManager").default, id: string, adds: import("../..").IChatMessage[], download?: boolean | undefined) => import("../..").AsyncAction;
|
7
|
+
deleteMessage: (messageSeq: string) => import("../..").AsyncAction;
|
8
|
+
deleteMessages: (messageSeqs: string[]) => import("../..").AsyncAction;
|
9
|
+
loadMessages: (imManager: import("../../ImManager").default, id: string) => import("../..").AsyncAction;
|
10
|
+
loadBusiNotifyMessages: (imManager: import("../../ImManager").default, id: string) => import("../..").AsyncAction;
|
11
|
+
loadSearchMessages: (imManager: import("../../ImManager").default, conversationId: string, messageSeq: string) => import("../..").AsyncAction;
|
12
|
+
loadBeforeMessages: (imManager: import("../../ImManager").default, conversationId: string, page: import("../..").IPage) => import("../..").AsyncAction;
|
13
|
+
loadAfterMessages: (imManager: import("../../ImManager").default, conversationId: string, page: import("../..").IPage) => import("../..").AsyncAction;
|
14
|
+
collectMessage: (imManager: import("../../ImManager").default, message: import("../..").IMessage) => import("../..").AsyncAction;
|
15
|
+
replyMessage: (imManager: import("../../ImManager").default, message: import("../..").IMessage) => import("../..").AsyncAction;
|
16
|
+
resetState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chat/message/resetState">;
|
17
|
+
setUserOnlineClients: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "chat/message/setUserOnlineClients">;
|
18
|
+
setVoicePlayMessageSeq: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setVoicePlayMessageSeq">;
|
19
|
+
setTips: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
20
|
+
messageSeq: string;
|
21
|
+
type: import("../..").TipsType;
|
22
|
+
text?: string | undefined;
|
23
|
+
} | null, "chat/message/setTips">;
|
24
|
+
setTipsQueue: import("@reduxjs/toolkit").ActionCreatorWithPayload<any[], "chat/message/setTipsQueue">;
|
25
|
+
setQuote: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessageQuote | null, "chat/message/setQuote">;
|
26
|
+
setOptionTitle: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setOptionTitle">;
|
27
|
+
setAllMembers: import("@reduxjs/toolkit").ActionCreatorWithPayload<[], "chat/message/setAllMembers">;
|
28
|
+
setBusiNotifyType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setBusiNotifyType">;
|
29
|
+
setBusiNotifyKeyword: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setBusiNotifyKeyword">;
|
30
|
+
setLastMessageSeq: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setLastMessageSeq">;
|
31
|
+
setFlatListRef: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "chat/message/setFlatListRef">;
|
32
|
+
setDragHeight: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "chat/message/setDragHeight">;
|
33
|
+
setDragList: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setDragList">;
|
34
|
+
setRangeList: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setRangeList">;
|
35
|
+
setFocusMessageSeq: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setFocusMessageSeq">;
|
36
|
+
setIsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "chat/message/setIsSearch">;
|
37
|
+
setIsMultiple: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "chat/message/setIsMultiple">;
|
38
|
+
setMultipleSelect: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "chat/message/setMultipleSelect">;
|
39
|
+
setMessageListData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setMessageListData">;
|
40
|
+
setMessages: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setMessages">;
|
41
|
+
setMessageText: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setMessageText">;
|
42
|
+
setAtUsers: import("@reduxjs/toolkit").ActionCreatorWithPayload<[], "chat/message/setAtUsers">;
|
43
|
+
addAtUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IGroupMember, "chat/message/addAtUser">;
|
44
|
+
setDraftText: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setDraftText">;
|
45
|
+
setForwardMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage | import("../..").IMessage[] | null, "chat/message/setForwardMessage">;
|
46
|
+
};
|
47
|
+
export { MessageActions };
|
@@ -0,0 +1,31 @@
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.MessageActions = void 0;
|
27
|
+
const message_slice_1 = require("./message.slice");
|
28
|
+
const asyncActions = __importStar(require("./message.action"));
|
29
|
+
const MessageActions = Object.assign(Object.assign({}, message_slice_1.actions), asyncActions);
|
30
|
+
exports.MessageActions = MessageActions;
|
31
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/slice/message/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAwC;AACxC,+DAAiD;AAEjD,MAAM,cAAc,mCAAO,uBAAO,GAAK,YAAY,CAAC,CAAC;AAE7C,wCAAc"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import ImManager from '../../ImManager';
|
2
|
+
import { AsyncAction, IMessage, IPage, IChatMessage } from '../../interface';
|
3
|
+
export declare const addMessage: (imManager: ImManager, message: IChatMessage, download?: boolean) => AsyncAction;
|
4
|
+
export declare const updateMessage: (messageSeq: string, message: Partial<IMessage>) => AsyncAction;
|
5
|
+
export declare const updateMessageStatus: (message: Partial<IMessage>) => AsyncAction;
|
6
|
+
export declare const addMessages: (imManager: ImManager, id: string, adds: IChatMessage[], download?: boolean) => AsyncAction;
|
7
|
+
export declare const deleteMessage: (messageSeq: string) => AsyncAction;
|
8
|
+
export declare const deleteMessages: (messageSeqs: string[]) => AsyncAction;
|
9
|
+
export declare const loadMessages: (imManager: ImManager, id: string) => AsyncAction;
|
10
|
+
export declare const loadBusiNotifyMessages: (imManager: ImManager, id: string) => AsyncAction;
|
11
|
+
export declare const loadSearchMessages: (imManager: ImManager, conversationId: string, messageSeq: string) => AsyncAction;
|
12
|
+
export declare const loadBeforeMessages: (imManager: ImManager, conversationId: string, page: IPage) => AsyncAction;
|
13
|
+
export declare const loadAfterMessages: (imManager: ImManager, conversationId: string, page: IPage) => AsyncAction;
|
14
|
+
export declare const collectMessage: (imManager: ImManager, message: IMessage) => AsyncAction;
|
15
|
+
export declare const replyMessage: (imManager: ImManager, message: IMessage) => AsyncAction;
|
16
|
+
export declare function getMessageFromState(messageSeq: string, getState: any): IMessage | undefined;
|
@@ -0,0 +1,269 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.getMessageFromState = exports.replyMessage = exports.collectMessage = exports.loadAfterMessages = exports.loadBeforeMessages = exports.loadSearchMessages = exports.loadBusiNotifyMessages = exports.loadMessages = exports.deleteMessages = exports.deleteMessage = exports.addMessages = exports.updateMessageStatus = exports.updateMessage = exports.addMessage = void 0;
|
13
|
+
const lodash_1 = require("lodash");
|
14
|
+
const constants_1 = require("../../constants");
|
15
|
+
const message_1 = require("../../utils/message");
|
16
|
+
const message_slice_1 = require("./message.slice");
|
17
|
+
const getState_1 = require("../getState");
|
18
|
+
const file_1 = require("../../utils/file");
|
19
|
+
const { setMessages, setTips, setTipsQueue, setIsMultiple, setUserOnlineClients, setQuote, setAtUsers, setMultipleSelect, setForwardMessage, } = message_slice_1.actions;
|
20
|
+
const addMessage = (imManager, message, download = false) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
21
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
22
|
+
dispatch(setMessages([(0, lodash_1.cloneDeep)(message), ...messages]));
|
23
|
+
if (download) {
|
24
|
+
yield downloadPayload(imManager, message, dispatch);
|
25
|
+
yield downloadQuotePayload(imManager, message, dispatch);
|
26
|
+
}
|
27
|
+
});
|
28
|
+
exports.addMessage = addMessage;
|
29
|
+
const updateMessage = (messageSeq, message) => (dispatch, getState) => {
|
30
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
31
|
+
dispatch(setMessages(messages.map(item => {
|
32
|
+
if (item.messageSeq === messageSeq) {
|
33
|
+
return (0, lodash_1.merge)({}, item, (0, lodash_1.cloneDeep)(message));
|
34
|
+
}
|
35
|
+
return item;
|
36
|
+
})));
|
37
|
+
};
|
38
|
+
exports.updateMessage = updateMessage;
|
39
|
+
const updateMessageStatus = (message) => (dispatch, getState) => {
|
40
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
41
|
+
dispatch(setMessages(messages.map(item => {
|
42
|
+
if (item.messageFrom === message.messageFrom) {
|
43
|
+
return (0, lodash_1.merge)({}, item, {
|
44
|
+
messageStatus: message.messageStatus
|
45
|
+
});
|
46
|
+
}
|
47
|
+
return item;
|
48
|
+
})));
|
49
|
+
};
|
50
|
+
exports.updateMessageStatus = updateMessageStatus;
|
51
|
+
const addMessages = (imManager, id, adds, download = false) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
52
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
53
|
+
yield addTips(imManager, id, dispatch);
|
54
|
+
const list = [...adds, ...messages].sort((a, b) => b.messageTime - a.messageTime);
|
55
|
+
dispatch(setMessages(list));
|
56
|
+
if (download) {
|
57
|
+
for (let i = 0; i < adds.length; i++) {
|
58
|
+
const newMessage = (0, lodash_1.cloneDeep)(adds[i]);
|
59
|
+
yield downloadPayload(imManager, newMessage, dispatch);
|
60
|
+
yield downloadQuotePayload(imManager, newMessage, dispatch);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
});
|
64
|
+
exports.addMessages = addMessages;
|
65
|
+
function downloadMessage(imManager, messages, dispatch) {
|
66
|
+
setTimeout(() => {
|
67
|
+
(0, message_1.downloadCommonMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadPayload(imManager, (0, lodash_1.cloneDeep)(item), dispatch); }));
|
68
|
+
(0, message_1.downloadQuoteMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadQuotePayload(imManager, (0, lodash_1.cloneDeep)(item), dispatch); }));
|
69
|
+
}, 500);
|
70
|
+
}
|
71
|
+
function downloadPayload(imManager, message, dispatch) {
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
73
|
+
yield (0, file_1.doCommonMessageDownload)(imManager, message);
|
74
|
+
dispatch((0, exports.updateMessage)(message.messageSeq, message));
|
75
|
+
yield imManager.db.updateMessage(message);
|
76
|
+
});
|
77
|
+
}
|
78
|
+
function downloadQuotePayload(imManager, message, dispatch) {
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
80
|
+
yield (0, message_1.doQuoteMessageDownload)(imManager, message);
|
81
|
+
dispatch((0, exports.updateMessage)(message.messageSeq, message));
|
82
|
+
yield imManager.db.updateMessage(message);
|
83
|
+
});
|
84
|
+
}
|
85
|
+
function addTips(imManager, id, dispatch) {
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
87
|
+
//处理新消息 @消息 回复消息
|
88
|
+
const tipsQueue = [];
|
89
|
+
const conversation = yield imManager.db.selectConversationById(id);
|
90
|
+
if (!conversation) {
|
91
|
+
return;
|
92
|
+
}
|
93
|
+
const { lastMessageSeq, unreadCount } = conversation;
|
94
|
+
if (lastMessageSeq && unreadCount >= 5) {
|
95
|
+
tipsQueue.push({
|
96
|
+
messageSeq: lastMessageSeq,
|
97
|
+
type: constants_1.TipsType.NEW_LINE,
|
98
|
+
text: unreadCount + imManager.t('newMessageTips'),
|
99
|
+
});
|
100
|
+
}
|
101
|
+
const { tipsList } = conversation;
|
102
|
+
(tipsList || []).forEach((item) => {
|
103
|
+
const { type, messageSeq } = item;
|
104
|
+
if (type === constants_1.TipsType.QUOTE) {
|
105
|
+
tipsQueue.push({
|
106
|
+
messageSeq: messageSeq,
|
107
|
+
type: constants_1.TipsType.QUOTE,
|
108
|
+
text: imManager.t('replyTips'),
|
109
|
+
});
|
110
|
+
}
|
111
|
+
else if (type === constants_1.TipsType.AT) {
|
112
|
+
tipsQueue.push({
|
113
|
+
messageSeq: messageSeq,
|
114
|
+
type: constants_1.TipsType.AT,
|
115
|
+
text: imManager.t('atTips'),
|
116
|
+
});
|
117
|
+
}
|
118
|
+
});
|
119
|
+
if (tipsQueue.length > 0) {
|
120
|
+
tipsQueue.reverse();
|
121
|
+
dispatch(setTips(tipsQueue.shift()));
|
122
|
+
dispatch(setTipsQueue(tipsQueue));
|
123
|
+
}
|
124
|
+
});
|
125
|
+
}
|
126
|
+
const deleteMessage = messageSeq => (dispatch, getState) => {
|
127
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
128
|
+
dispatch(setMessages(messages.filter(item => item.messageSeq !== messageSeq)));
|
129
|
+
};
|
130
|
+
exports.deleteMessage = deleteMessage;
|
131
|
+
const deleteMessages = (messageSeqs) => (dispatch, getState) => {
|
132
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
133
|
+
dispatch(setMessages(messages.filter(item => !messageSeqs.includes(item.messageSeq))));
|
134
|
+
};
|
135
|
+
exports.deleteMessages = deleteMessages;
|
136
|
+
const loadMessages = (imManager, id) => (dispatch) => __awaiter(void 0, void 0, void 0, function* () {
|
137
|
+
//查询发送中的消息
|
138
|
+
let tMessageEmitting = yield imManager.db.selectMessageEmitting({ conversationId: id });
|
139
|
+
//超时更新成失败
|
140
|
+
const currentTime = new Date().getTime();
|
141
|
+
tMessageEmitting.forEach(item => {
|
142
|
+
if (item === constants_1.MessageStatus.EMIT_ERROR) {
|
143
|
+
return;
|
144
|
+
}
|
145
|
+
if (currentTime - item.messageTime > 120000) {
|
146
|
+
item.messageStatus = constants_1.MessageStatus.EMIT_ERROR;
|
147
|
+
}
|
148
|
+
});
|
149
|
+
//查询已经发送及接收的消息
|
150
|
+
const tMessage = yield imManager.db.selectMessage({ conversationId: id });
|
151
|
+
yield addTips(imManager, id, dispatch);
|
152
|
+
//消息合并排序
|
153
|
+
//const sortList = [...tMessage].sort((a, b) => b.messageTime - a.messageTime);
|
154
|
+
const list = [...tMessageEmitting, ...tMessage].sort((a, b) => b.messageTime - a.messageTime);
|
155
|
+
dispatch(setMessages(list));
|
156
|
+
downloadMessage(imManager, list, dispatch);
|
157
|
+
handlerReceiptBack(imManager, tMessage);
|
158
|
+
});
|
159
|
+
exports.loadMessages = loadMessages;
|
160
|
+
function handlerReceiptBack(imManager, list) {
|
161
|
+
list.forEach(message => {
|
162
|
+
const { messageStatus, isMyMessage, conversationType, payloadType } = message;
|
163
|
+
if (messageStatus === constants_1.MessageStatus.UNDO ||
|
164
|
+
messageStatus === constants_1.MessageStatus.READ ||
|
165
|
+
isMyMessage ||
|
166
|
+
conversationType !== constants_1.ConversationType.C2C ||
|
167
|
+
payloadType === constants_1.PayloadType.VOICE) {
|
168
|
+
return;
|
169
|
+
}
|
170
|
+
const tMessage = (0, lodash_1.cloneDeep)(message);
|
171
|
+
tMessage.messageStatus = constants_1.MessageStatus.READ;
|
172
|
+
(0, message_1.emitReceiptBackMessage)(imManager, message);
|
173
|
+
});
|
174
|
+
}
|
175
|
+
const loadBusiNotifyMessages = (imManager, id) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
176
|
+
const { busiNotifyKeyword, busiNotifyType } = (0, getState_1.getMessageState)(getState);
|
177
|
+
yield addTips(imManager, id, dispatch);
|
178
|
+
const tMessages = yield imManager.db.searchMessages({
|
179
|
+
keyword: busiNotifyKeyword,
|
180
|
+
conversationId: id,
|
181
|
+
busiNotifyType,
|
182
|
+
});
|
183
|
+
dispatch(setMessages([...tMessages]));
|
184
|
+
});
|
185
|
+
exports.loadBusiNotifyMessages = loadBusiNotifyMessages;
|
186
|
+
const loadSearchMessages = (imManager, conversationId, messageSeq) => (dispatch) => __awaiter(void 0, void 0, void 0, function* () {
|
187
|
+
const messages = yield imManager.db.selectBeforeMessages({
|
188
|
+
conversationId,
|
189
|
+
messageSeq,
|
190
|
+
include: true,
|
191
|
+
limit: 15,
|
192
|
+
});
|
193
|
+
dispatch(setMessages(messages));
|
194
|
+
});
|
195
|
+
exports.loadSearchMessages = loadSearchMessages;
|
196
|
+
const loadBeforeMessages = (imManager, conversationId, page) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
197
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
198
|
+
if (messages.length === 0) {
|
199
|
+
return;
|
200
|
+
}
|
201
|
+
const data = yield imManager.db.selectBeforeMessages(Object.assign({ conversationId, messageSeq: messages[messages.length - 1].messageSeq }, page));
|
202
|
+
if (data.length === 0) {
|
203
|
+
return;
|
204
|
+
}
|
205
|
+
data.sort((a, b) => b.messageTime - a.messageTime);
|
206
|
+
dispatch(setMessages([...messages, ...data]));
|
207
|
+
});
|
208
|
+
exports.loadBeforeMessages = loadBeforeMessages;
|
209
|
+
const loadAfterMessages = (imManager, conversationId, page) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
210
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
211
|
+
if (messages.length === 0) {
|
212
|
+
return;
|
213
|
+
}
|
214
|
+
const lastMessage = messages.find(item => !item.messageSeq.startsWith('emitting_'));
|
215
|
+
if (lastMessage) {
|
216
|
+
const data = yield imManager.db.selectAfterMessages(Object.assign({ conversationId, messageSeq: lastMessage.messageSeq }, page));
|
217
|
+
if (data.length === 0) {
|
218
|
+
return;
|
219
|
+
}
|
220
|
+
data.sort((a, b) => b.messageTime - a.messageTime);
|
221
|
+
dispatch(setMessages([...data, ...messages]));
|
222
|
+
}
|
223
|
+
});
|
224
|
+
exports.loadAfterMessages = loadAfterMessages;
|
225
|
+
const collectMessage = (imManager, message) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
226
|
+
const collection = buildCollection(message, getState);
|
227
|
+
const isExist = yield imManager.db.isCollection(message.messageSeq);
|
228
|
+
if (!isExist) {
|
229
|
+
yield imManager.db.insertCollection(collection);
|
230
|
+
}
|
231
|
+
});
|
232
|
+
exports.collectMessage = collectMessage;
|
233
|
+
function buildCollection(message, getState) {
|
234
|
+
const { messageSeq, conversationId, messageTime, payloadType, payload } = message;
|
235
|
+
const { currentConversation } = (0, getState_1.getConversationState)(getState);
|
236
|
+
let searchText = (0, message_1.buildSearchText)(message);
|
237
|
+
return {
|
238
|
+
messageSeq,
|
239
|
+
conversationId,
|
240
|
+
conversationName: currentConversation.name,
|
241
|
+
payloadType,
|
242
|
+
messageTime,
|
243
|
+
searchText,
|
244
|
+
collectTime: new Date().getTime(),
|
245
|
+
payload,
|
246
|
+
};
|
247
|
+
}
|
248
|
+
function getQuoteText(imManager, message) {
|
249
|
+
const { payloadType, payload } = message;
|
250
|
+
return (0, message_1.buildSimpleText)(imManager, payloadType, payload);
|
251
|
+
}
|
252
|
+
const replyMessage = (imManager, message) => (dispatch, getState) => {
|
253
|
+
const quoteText = getQuoteText(imManager, message);
|
254
|
+
const { messageFrom, messageFromName, payload } = message;
|
255
|
+
dispatch(setQuote({
|
256
|
+
quoteId: messageFrom,
|
257
|
+
quoteAvatars: payload.avatars,
|
258
|
+
quoteTitle: messageFromName,
|
259
|
+
quoteText,
|
260
|
+
quoteMessage: message,
|
261
|
+
}));
|
262
|
+
};
|
263
|
+
exports.replyMessage = replyMessage;
|
264
|
+
function getMessageFromState(messageSeq, getState) {
|
265
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
266
|
+
return messages.find(item => item.messageSeq === messageSeq);
|
267
|
+
}
|
268
|
+
exports.getMessageFromState = getMessageFromState;
|
269
|
+
//# sourceMappingURL=message.action.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"message.action.js","sourceRoot":"","sources":["../../../src/slice/message/message.action.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import ImManager from "../../ImManager";
|
2
|
+
import { AsyncAction, IConversation, IMessage } from "../../interface";
|
3
|
+
/**
|
4
|
+
* 消息选择操作 --- start
|
5
|
+
**/
|
6
|
+
export declare const onMultipleSelect: (messageSeq: string) => AsyncAction;
|
7
|
+
export declare const startMultipleSelect: (message: IMessage) => AsyncAction;
|
8
|
+
export declare const cancelMultipleSelect: () => AsyncAction;
|
9
|
+
export declare const onMultipleForward: (imManager: ImManager, needCancel: boolean) => AsyncAction;
|
10
|
+
export declare const onMultipleCollect: (imManager: ImManager) => AsyncAction;
|
11
|
+
export declare const onMultipleDelete: (imManager: ImManager) => AsyncAction;
|
12
|
+
/**
|
13
|
+
* 消息选择操作 --- end
|
14
|
+
**/
|
15
|
+
/**
|
16
|
+
* 草稿
|
17
|
+
*/
|
18
|
+
export declare const saveDraftText: (imManager: ImManager) => AsyncAction;
|
19
|
+
export declare const addDraftText: (imManager: ImManager, updateInfo: Partial<IConversation>) => AsyncAction;
|
20
|
+
export declare const downloadFile: (imManager: ImManager, message: IMessage) => AsyncAction;
|
21
|
+
export declare const focusTipsMessage: (imManager: ImManager) => AsyncAction;
|
22
|
+
export declare const onPressQuote: (imManager: ImManager, messageSeq: string) => AsyncAction;
|
23
|
+
export declare const onRangeLayout: (imManager: ImManager) => AsyncAction;
|
@@ -0,0 +1,234 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.onRangeLayout = exports.onPressQuote = exports.focusTipsMessage = exports.downloadFile = exports.addDraftText = exports.saveDraftText = exports.onMultipleDelete = exports.onMultipleCollect = exports.onMultipleForward = exports.cancelMultipleSelect = exports.startMultipleSelect = exports.onMultipleSelect = void 0;
|
13
|
+
const constants_1 = require("../../constants");
|
14
|
+
const conversation_1 = require("../conversation");
|
15
|
+
const conversation_action_1 = require("../conversation/conversation.action");
|
16
|
+
const getState_1 = require("../getState");
|
17
|
+
const message_action_1 = require("../message/message.action");
|
18
|
+
const message_1 = require("../message");
|
19
|
+
const message_2 = require("../../utils/message");
|
20
|
+
const file_1 = require("../../utils/file");
|
21
|
+
/**
|
22
|
+
* 消息选择操作 --- start
|
23
|
+
**/
|
24
|
+
const onMultipleSelect = messageSeq => (dispatch, getState) => {
|
25
|
+
const { messages, multipleSelect } = (0, getState_1.getMessageState)(getState);
|
26
|
+
const message = messages.find(item => item.messageSeq === messageSeq);
|
27
|
+
const newState = Object.assign({}, multipleSelect);
|
28
|
+
if (newState[messageSeq]) {
|
29
|
+
delete newState[messageSeq];
|
30
|
+
}
|
31
|
+
else {
|
32
|
+
newState[messageSeq] = message;
|
33
|
+
}
|
34
|
+
dispatch(message_1.MessageActions.setMultipleSelect(newState));
|
35
|
+
};
|
36
|
+
exports.onMultipleSelect = onMultipleSelect;
|
37
|
+
const startMultipleSelect = message => (dispatch, getState) => {
|
38
|
+
const { multipleSelect } = (0, getState_1.getMessageState)(getState);
|
39
|
+
const newState = Object.assign(Object.assign({}, multipleSelect), { [message.messageSeq]: message });
|
40
|
+
dispatch(message_1.MessageActions.setIsMultiple(true));
|
41
|
+
dispatch(message_1.MessageActions.setMultipleSelect(newState));
|
42
|
+
};
|
43
|
+
exports.startMultipleSelect = startMultipleSelect;
|
44
|
+
const cancelMultipleSelect = () => dispatch => {
|
45
|
+
dispatch(message_1.MessageActions.setIsMultiple(false));
|
46
|
+
dispatch(message_1.MessageActions.setMultipleSelect({}));
|
47
|
+
};
|
48
|
+
exports.cancelMultipleSelect = cancelMultipleSelect;
|
49
|
+
const onMultipleForward = (imManager, needCancel = true) => (dispatch, getState) => {
|
50
|
+
const { currentConversation } = (0, getState_1.getConversationState)(getState);
|
51
|
+
const { multipleSelect } = (0, getState_1.getMessageState)(getState);
|
52
|
+
const { id, name, type } = currentConversation;
|
53
|
+
const selectedMessages = Object.values(multipleSelect).sort((a, b) => a.messageTime - b.messageTime);
|
54
|
+
const message = {
|
55
|
+
payloadType: constants_1.PayloadType.MULTIPLE,
|
56
|
+
payload: {
|
57
|
+
id,
|
58
|
+
fromName: imManager.user.userName,
|
59
|
+
toName: name,
|
60
|
+
type,
|
61
|
+
selectedMessages,
|
62
|
+
},
|
63
|
+
};
|
64
|
+
dispatch(message_1.MessageActions.setForwardMessage(message));
|
65
|
+
if (needCancel) {
|
66
|
+
dispatch((0, exports.cancelMultipleSelect)());
|
67
|
+
}
|
68
|
+
};
|
69
|
+
exports.onMultipleForward = onMultipleForward;
|
70
|
+
const onMultipleCollect = imManager => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
71
|
+
const { multipleSelect } = (0, getState_1.getMessageState)(getState);
|
72
|
+
const selectedMessages = Object.values(multipleSelect);
|
73
|
+
for (let i = 0; i < selectedMessages.length; i++) {
|
74
|
+
yield dispatch((0, message_action_1.collectMessage)(imManager, selectedMessages[i]));
|
75
|
+
}
|
76
|
+
dispatch((0, exports.cancelMultipleSelect)());
|
77
|
+
});
|
78
|
+
exports.onMultipleCollect = onMultipleCollect;
|
79
|
+
const onMultipleDelete = imManager => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
80
|
+
const { currentConversation } = (0, getState_1.getConversationState)(getState);
|
81
|
+
const { multipleSelect, messages } = (0, getState_1.getMessageState)(getState);
|
82
|
+
const messageSeqs = Object.keys(multipleSelect);
|
83
|
+
const updateData = {
|
84
|
+
id: currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.id,
|
85
|
+
errorText: '',
|
86
|
+
text: imManager.t('userDeleteMessage', { count: messageSeqs.length }),
|
87
|
+
};
|
88
|
+
yield imManager.db.updateConversationById(updateData);
|
89
|
+
dispatch((0, conversation_action_1.updateConversation)(updateData));
|
90
|
+
yield imManager.db.deleteMessageByPKBatch(messageSeqs);
|
91
|
+
yield imManager.db.deleteMessageEmittingByPKBatch(messageSeqs);
|
92
|
+
dispatch(message_1.MessageActions.setMessages(messages.filter(item => !multipleSelect[item.messageSeq])));
|
93
|
+
dispatch((0, exports.cancelMultipleSelect)());
|
94
|
+
});
|
95
|
+
exports.onMultipleDelete = onMultipleDelete;
|
96
|
+
/**
|
97
|
+
* 消息选择操作 --- end
|
98
|
+
**/
|
99
|
+
/**
|
100
|
+
* 草稿
|
101
|
+
*/
|
102
|
+
const saveDraftText = (imManager) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
103
|
+
const { currentConversation } = (0, getState_1.getConversationState)(getState);
|
104
|
+
if (!currentConversation) {
|
105
|
+
return;
|
106
|
+
}
|
107
|
+
const { draftText } = (0, getState_1.getMessageState)(getState);
|
108
|
+
const updateInfo = {
|
109
|
+
id: currentConversation.id,
|
110
|
+
draftText
|
111
|
+
};
|
112
|
+
dispatch(conversation_1.ConversationActions.updateConversation(updateInfo));
|
113
|
+
dispatch(message_1.MessageActions.setDraftText(''));
|
114
|
+
yield imManager.db.updateConversationById(updateInfo);
|
115
|
+
});
|
116
|
+
exports.saveDraftText = saveDraftText;
|
117
|
+
const addDraftText = (imManager, updateInfo) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
118
|
+
dispatch(conversation_1.ConversationActions.updateConversation(updateInfo));
|
119
|
+
imManager.db.updateConversationById(updateInfo);
|
120
|
+
});
|
121
|
+
exports.addDraftText = addDraftText;
|
122
|
+
const downloadFile = (imManager, message) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
123
|
+
const { messageSeq, payload, payload: { fileId, filename, } } = message;
|
124
|
+
if (!fileId) {
|
125
|
+
return;
|
126
|
+
}
|
127
|
+
payload.localPath = yield imManager.download({
|
128
|
+
fileId,
|
129
|
+
resourceType: constants_1.ResourceType.FILE,
|
130
|
+
filename: filename
|
131
|
+
});
|
132
|
+
yield imManager.db.updateMessage({
|
133
|
+
messageSeq,
|
134
|
+
payload,
|
135
|
+
});
|
136
|
+
dispatch(message_1.MessageActions.updateMessage(messageSeq, {
|
137
|
+
messageSeq,
|
138
|
+
payload,
|
139
|
+
}));
|
140
|
+
});
|
141
|
+
exports.downloadFile = downloadFile;
|
142
|
+
function downloadQuotePayload(imManager, message, dispatch) {
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
144
|
+
yield (0, message_2.doQuoteMessageDownload)(imManager, message);
|
145
|
+
dispatch(message_1.MessageActions.updateMessage(message.messageSeq, message));
|
146
|
+
yield imManager.db.updateMessage(message);
|
147
|
+
});
|
148
|
+
}
|
149
|
+
function downloadPayload(imManager, message, dispatch) {
|
150
|
+
return __awaiter(this, void 0, void 0, function* () {
|
151
|
+
yield (0, file_1.doCommonMessageDownload)(imManager, message);
|
152
|
+
dispatch((0, message_action_1.updateMessage)(message.messageSeq, message));
|
153
|
+
yield imManager.db.updateMessage(message);
|
154
|
+
});
|
155
|
+
}
|
156
|
+
function downloadMessage(imManager, messages, dispatch) {
|
157
|
+
setTimeout(() => {
|
158
|
+
(0, message_2.downloadCommonMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadPayload(imManager, item, dispatch); }));
|
159
|
+
(0, message_2.downloadQuoteMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadQuotePayload(imManager, item, dispatch); }));
|
160
|
+
}, 500);
|
161
|
+
}
|
162
|
+
function getContainIndex(messageSeq, messages) {
|
163
|
+
for (let i = 0; i < messages.length; i++) {
|
164
|
+
if (messages[i].messageSeq === messageSeq) {
|
165
|
+
return i;
|
166
|
+
}
|
167
|
+
}
|
168
|
+
return -1;
|
169
|
+
}
|
170
|
+
const focusTipsMessage = (imManager) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
171
|
+
const { currentConversation } = (0, getState_1.getConversationState)(getState);
|
172
|
+
const { tips, messages, tipsQueue } = (0, getState_1.getMessageState)(getState);
|
173
|
+
const { messageSeq } = tips;
|
174
|
+
const conversationId = currentConversation.id;
|
175
|
+
const index = getContainIndex(messageSeq, messages);
|
176
|
+
if (index >= 0) {
|
177
|
+
dispatch(message_1.MessageActions.setRangeList(messages));
|
178
|
+
}
|
179
|
+
else {
|
180
|
+
dispatch(message_1.MessageActions.setRangeList([]));
|
181
|
+
const rangeMessages = yield imManager.db.selectRangeMessage({
|
182
|
+
conversationId,
|
183
|
+
messageSeqBegin: messages[messages.length - 1].messageSeq,
|
184
|
+
messageSeqEnd: messageSeq
|
185
|
+
});
|
186
|
+
if (rangeMessages.length === 0) {
|
187
|
+
let newQueue = tipsQueue.slice();
|
188
|
+
dispatch(message_1.MessageActions.setTips(newQueue.shift()));
|
189
|
+
dispatch(message_1.MessageActions.setTipsQueue(newQueue));
|
190
|
+
dispatch(message_1.MessageActions.setRangeList([]));
|
191
|
+
return;
|
192
|
+
}
|
193
|
+
const ext = yield imManager.db.selectBeforeMessages({
|
194
|
+
conversationId,
|
195
|
+
messageSeq: rangeMessages[rangeMessages.length - 1].messageSeq,
|
196
|
+
limit: 5,
|
197
|
+
});
|
198
|
+
dispatch(message_1.MessageActions.setRangeList(rangeMessages));
|
199
|
+
const list = [...messages, ...rangeMessages, ...ext];
|
200
|
+
dispatch(message_1.MessageActions.setMessages(list));
|
201
|
+
downloadMessage(imManager, [...rangeMessages, ...ext], dispatch);
|
202
|
+
}
|
203
|
+
});
|
204
|
+
exports.focusTipsMessage = focusTipsMessage;
|
205
|
+
const onPressQuote = (imManager, messageSeq) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
206
|
+
if (!messageSeq) {
|
207
|
+
return;
|
208
|
+
}
|
209
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
210
|
+
const index = getContainIndex(messageSeq, messages);
|
211
|
+
if (index >= 0) {
|
212
|
+
imManager.scrollTo(messageSeq, true);
|
213
|
+
return;
|
214
|
+
}
|
215
|
+
dispatch(message_1.MessageActions.setTips({
|
216
|
+
messageSeq: messageSeq,
|
217
|
+
type: constants_1.TipsType.QUOTE,
|
218
|
+
}));
|
219
|
+
yield dispatch((0, exports.focusTipsMessage)(imManager));
|
220
|
+
});
|
221
|
+
exports.onPressQuote = onPressQuote;
|
222
|
+
const onRangeLayout = (imManager) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
|
223
|
+
const { messages } = (0, getState_1.getMessageState)(getState);
|
224
|
+
const { tips } = (0, getState_1.getMessageState)(getState);
|
225
|
+
const { messageSeq } = tips;
|
226
|
+
const index = getContainIndex(messageSeq, messages);
|
227
|
+
if (index >= 0) {
|
228
|
+
imManager.scrollTo(messageSeq, true);
|
229
|
+
dispatch(message_1.MessageActions.setTips(null));
|
230
|
+
dispatch(message_1.MessageActions.setRangeList([]));
|
231
|
+
}
|
232
|
+
});
|
233
|
+
exports.onRangeLayout = onRangeLayout;
|
234
|
+
//# sourceMappingURL=message.panel.action.js.map
|