@droppii-org/chat-mobile 0.2.6 → 0.2.7
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/lib/module/components/ThreadCard/AvatarSection.js +4 -4
- package/lib/module/components/ThreadCard/AvatarSection.js.map +1 -1
- package/lib/module/components/ThreadCard/NamePrefixIcon.js +13 -16
- package/lib/module/components/ThreadCard/NamePrefixIcon.js.map +1 -1
- package/lib/module/components/ThreadCard/ThreadCard.js +13 -33
- package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
- package/lib/module/context/ChatContext.js +7 -6
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +101 -0
- package/lib/module/hooks/message/useSendMessage.js.map +1 -0
- package/lib/module/hooks/useChatMessages.js +37 -119
- package/lib/module/hooks/useChatMessages.js.map +1 -1
- package/lib/module/hooks/useConversationList.js +29 -17
- package/lib/module/hooks/useConversationList.js.map +1 -1
- package/lib/module/hooks/useLinkPreview/useLinkPreview.js +3 -2
- package/lib/module/hooks/useLinkPreview/useLinkPreview.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +2 -2
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +14 -10
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetailHeader.js +5 -8
- package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatLinkPreview.js +1 -1
- package/lib/module/screens/chat-detail/ChatLinkPreview.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +0 -2
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/conversationHeader.utils.js +7 -9
- package/lib/module/screens/chat-detail/conversationHeader.utils.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +10 -23
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/message-types.js +128 -6
- package/lib/module/screens/chat-detail/legend/message-types.js.map +1 -1
- package/lib/module/store/conversation.js +1 -1
- package/lib/module/store/conversation.js.map +1 -1
- package/lib/module/store/message.js +45 -0
- package/lib/module/store/message.js.map +1 -0
- package/lib/module/translation/resources/i18n.js +7 -1
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/chat.js +2 -7
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/utils/conversation.js +34 -13
- package/lib/module/utils/conversation.js.map +1 -1
- package/lib/module/utils/legendListMessage.js +0 -3
- package/lib/module/utils/legendListMessage.js.map +1 -1
- package/lib/module/utils/message.js +5 -8
- package/lib/module/utils/message.js.map +1 -1
- package/lib/module/utils/url.js +3 -3
- package/lib/module/utils/url.js.map +1 -1
- package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts +2 -2
- package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts +3 -4
- package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts.map +1 -1
- package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +12 -0
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useChatMessages.d.ts +0 -1
- package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useConversationList.d.ts +2 -1
- package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +1 -3
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/types.d.ts +6 -7
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/store/message.d.ts +3 -0
- package/lib/typescript/src/store/message.d.ts.map +1 -0
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +28 -27
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +1 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -1
- package/lib/typescript/src/utils/conversation.d.ts +3 -2
- package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
- package/lib/typescript/src/utils/legendListMessage.d.ts +0 -2
- package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -1
- package/lib/typescript/src/utils/message.d.ts.map +1 -1
- package/lib/typescript/src/utils/url.d.ts +1 -1
- package/lib/typescript/src/utils/url.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/ThreadCard/AvatarSection.tsx +5 -8
- package/src/components/ThreadCard/NamePrefixIcon.tsx +27 -38
- package/src/components/ThreadCard/ThreadCard.tsx +16 -30
- package/src/context/ChatContext.tsx +12 -4
- package/src/hooks/message/useSendMessage.ts +136 -0
- package/src/hooks/useChatMessages.ts +70 -158
- package/src/hooks/useConversationList.ts +34 -16
- package/src/hooks/useLinkPreview/useLinkPreview.ts +3 -2
- package/src/screens/chat-detail/ChatComposer.tsx +2 -2
- package/src/screens/chat-detail/ChatDetail.tsx +29 -22
- package/src/screens/chat-detail/ChatDetailHeader.tsx +4 -10
- package/src/screens/chat-detail/ChatLinkPreview.tsx +1 -1
- package/src/screens/chat-detail/ChatListLegend.tsx +1 -2
- package/src/screens/chat-detail/conversationHeader.utils.ts +11 -14
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +15 -33
- package/src/screens/chat-detail/legend/message-types.tsx +167 -12
- package/src/screens/chat-detail/types.ts +6 -8
- package/src/store/conversation.ts +1 -1
- package/src/store/message.ts +44 -0
- package/src/translation/resources/i18n.ts +6 -0
- package/src/types/chat.ts +31 -30
- package/src/types/common.ts +1 -0
- package/src/utils/conversation.ts +44 -17
- package/src/utils/legendListMessage.ts +0 -5
- package/src/utils/message.ts +10 -12
- package/src/utils/url.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PeerType","getConversationTitle","conversation","showName","getConversationAvatarUri","faceURL","getConversationSubtitle","undefined","peerType","Group","unreadLabel","unreadCount","Customer","applicationType","shouldShowAddMember"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/conversationHeader.utils.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,+BAA+B;AAGxD,OAAO,MAAMC,oBAAoB,GAC/BC,YAAgC,IACrB;EACX,IAAI,CAACA,YAAY,EAAE;IACjB,OAAO,UAAU;EACnB;EAEA,OAAOA,YAAY,CAACC,QAAQ,IAAI,UAAU;AAC5C,CAAC;AAED,OAAO,MAAMC,wBAAwB,GACnCF,YAAgC,IACd;EAClB,OAAOA,YAAY,EAAEG,OAAO,IAAI,IAAI;AACtC,CAAC;AAED,OAAO,MAAMC,uBAAuB,GAClCJ,YAAgC,IACT;EACvB,IAAI,CAACA,YAAY,EAAE;IACjB,OAAOK,SAAS;EAClB;EAEA,IAAIL,YAAY,CAACM,QAAQ,KAAKR,QAAQ,CAACS,KAAK,EAAE;IAC5C,MAAMC,WAAW,GACf,CAACR,YAAY,CAACS,WAAW,IAAI,CAAC,IAAI,CAAC,GAC/B,GAAGT,YAAY,CAACS,WAAW,eAAe,GAC1C,kBAAkB;IACxB,OAAO,mBAAmBD,WAAW,EAAE;EACzC;EAEA,IACER,YAAY,CAACM,QAAQ,KAAKR,QAAQ,CAACY,QAAQ,IAC3CV,YAAY,CAACW,eAAe,KAAK,MAAM,EACvC;IACA,OAAO,+BAA+B;EACxC;EAEA,OAAO,uBAAuB;AAChC,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAC9BZ,YAAgC,IACpB;EACZ,OAAOA,YAAY,EAAEM,QAAQ,KAAKR,QAAQ,CAACS,KAAK;AAClD,CAAC","ignoreList":[]}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { MessageType } from '@droppii/openim-rn-client-sdk';
|
|
5
|
+
import { LegendTextMessage, LegendImageMessage, LegendVideoMessage, LegendFileMessage, LegendLinkMessage } from "./message-types.js";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
// Message type to component mapping
|
|
8
7
|
const messageComponentMap = {
|
|
9
|
-
[
|
|
10
|
-
[
|
|
11
|
-
[
|
|
12
|
-
[
|
|
13
|
-
[
|
|
14
|
-
|
|
15
|
-
[
|
|
16
|
-
// Order renders as text for now
|
|
17
|
-
[MessageTypeEnum.Unsupported]: LegendTextMessage // Unsupported renders as text for now
|
|
8
|
+
[MessageType.TextMessage]: LegendTextMessage,
|
|
9
|
+
[MessageType.AtTextMessage]: LegendTextMessage,
|
|
10
|
+
[MessageType.QuoteMessage]: LegendTextMessage,
|
|
11
|
+
[MessageType.UrlTextMessage]: LegendLinkMessage,
|
|
12
|
+
[MessageType.PictureMessage]: LegendImageMessage,
|
|
13
|
+
[MessageType.VideoMessage]: LegendVideoMessage,
|
|
14
|
+
[MessageType.FileMessage]: LegendFileMessage
|
|
18
15
|
};
|
|
19
16
|
|
|
20
17
|
/**
|
|
@@ -23,20 +20,10 @@ const messageComponentMap = {
|
|
|
23
20
|
*/
|
|
24
21
|
export const LegendChatMessage = /*#__PURE__*/memo(({
|
|
25
22
|
message,
|
|
26
|
-
messageType,
|
|
27
23
|
isOutgoing,
|
|
28
24
|
createdAtTime
|
|
29
25
|
}) => {
|
|
30
|
-
const MessageComponent = messageComponentMap[
|
|
31
|
-
|
|
32
|
-
// Fallback to text message if type not found
|
|
33
|
-
if (!MessageComponent) {
|
|
34
|
-
return /*#__PURE__*/_jsx(LegendTextMessage, {
|
|
35
|
-
message: message,
|
|
36
|
-
isOutgoing: isOutgoing,
|
|
37
|
-
createdAtTime: createdAtTime
|
|
38
|
-
});
|
|
39
|
-
}
|
|
26
|
+
const MessageComponent = messageComponentMap[message?.contentType] ?? LegendTextMessage;
|
|
40
27
|
return /*#__PURE__*/_jsx(MessageComponent, {
|
|
41
28
|
message: message,
|
|
42
29
|
isOutgoing: isOutgoing,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","LegendTextMessage","LegendImageMessage","LegendVideoMessage","LegendFileMessage","
|
|
1
|
+
{"version":3,"names":["memo","MessageType","LegendTextMessage","LegendImageMessage","LegendVideoMessage","LegendFileMessage","LegendLinkMessage","jsx","_jsx","messageComponentMap","TextMessage","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","VideoMessage","FileMessage","LegendChatMessage","message","isOutgoing","createdAtTime","MessageComponent","contentType","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAE5B,SAASC,WAAW,QAAQ,+BAA+B;AAE3D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,iBAAiB,EACjBC,iBAAiB,QACZ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQzB,MAAMC,mBAAqE,GAAG;EAC5E,CAACR,WAAW,CAACS,WAAW,GAAGR,iBAAiB;EAC5C,CAACD,WAAW,CAACU,aAAa,GAAGT,iBAAiB;EAC9C,CAACD,WAAW,CAACW,YAAY,GAAGV,iBAAiB;EAC7C,CAACD,WAAW,CAACY,cAAc,GAAGP,iBAAiB;EAC/C,CAACL,WAAW,CAACa,cAAc,GAAGX,kBAAkB;EAChD,CAACF,WAAW,CAACc,YAAY,GAAGX,kBAAkB;EAC9C,CAACH,WAAW,CAACe,WAAW,GAAGX;AAC7B,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMY,iBAAiB,gBAAGjB,IAAI,CACnC,CAAC;EAAEkB,OAAO;EAAEC,UAAU;EAAEC;AAAsC,CAAC,KAAK;EAClE,MAAMC,gBAAgB,GACpBZ,mBAAmB,CAACS,OAAO,EAAEI,WAAW,CAAC,IAAIpB,iBAAiB;EAEhE,oBACEM,IAAA,CAACa,gBAAgB;IACfH,OAAO,EAAEA,OAAQ;IACjBC,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA;EAAc,CAC9B,CAAC;AAEN,CACF,CAAC;AAEDH,iBAAiB,CAACM,WAAW,GAAG,mBAAmB","ignoreList":[]}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo } from 'react';
|
|
4
|
-
import { StyleSheet } from 'react-native';
|
|
5
|
-
import { KContainer, KLabel, KSpacingValue } from '@droppii/libs';
|
|
4
|
+
import { Linking, StyleSheet, Text } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
|
|
6
6
|
import { getMessageText } from "../../../utils/legendListMessage.js";
|
|
7
7
|
import { CHAT_BUBBLE_COLORS } from "../constants.js";
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
const formatMessageTime = createdAt => {
|
|
10
10
|
const date = new Date(createdAt);
|
|
11
|
-
if (Number.isNaN(date.getTime()))
|
|
12
|
-
return '';
|
|
13
|
-
}
|
|
11
|
+
if (Number.isNaN(date.getTime())) return '';
|
|
14
12
|
return date.toLocaleTimeString('vi-VN', {
|
|
15
13
|
hour: '2-digit',
|
|
16
14
|
minute: '2-digit',
|
|
@@ -41,7 +39,7 @@ export const LegendTextMessage = /*#__PURE__*/memo(({
|
|
|
41
39
|
}), !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
|
|
42
40
|
typo: "TextXsNormal",
|
|
43
41
|
color: CHAT_BUBBLE_COLORS.timestamp,
|
|
44
|
-
marginL:
|
|
42
|
+
marginL: "0.25rem",
|
|
45
43
|
children: timeLabel
|
|
46
44
|
}) : null]
|
|
47
45
|
});
|
|
@@ -103,6 +101,107 @@ export const LegendFileMessage = /*#__PURE__*/memo(({
|
|
|
103
101
|
});
|
|
104
102
|
});
|
|
105
103
|
LegendFileMessage.displayName = 'LegendFileMessage';
|
|
104
|
+
|
|
105
|
+
// Link Message Component
|
|
106
|
+
const parseUrlMetadata = ex => {
|
|
107
|
+
if (!ex) return undefined;
|
|
108
|
+
try {
|
|
109
|
+
return JSON.parse(ex).urlMetadata;
|
|
110
|
+
} catch {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
const renderTextWithLinks = (content, urls) => {
|
|
115
|
+
if (!urls.length) {
|
|
116
|
+
return /*#__PURE__*/_jsx(KLabel.Text, {
|
|
117
|
+
typo: "TextMdNormal",
|
|
118
|
+
color: CHAT_BUBBLE_COLORS.text,
|
|
119
|
+
children: content
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
const parts = [];
|
|
123
|
+
let remaining = content;
|
|
124
|
+
for (const url of urls) {
|
|
125
|
+
const idx = remaining.indexOf(url);
|
|
126
|
+
if (idx === -1) continue;
|
|
127
|
+
if (idx > 0) parts.push({
|
|
128
|
+
text: remaining.slice(0, idx),
|
|
129
|
+
isUrl: false
|
|
130
|
+
});
|
|
131
|
+
parts.push({
|
|
132
|
+
text: url,
|
|
133
|
+
isUrl: true
|
|
134
|
+
});
|
|
135
|
+
remaining = remaining.slice(idx + url.length);
|
|
136
|
+
}
|
|
137
|
+
if (remaining) parts.push({
|
|
138
|
+
text: remaining,
|
|
139
|
+
isUrl: false
|
|
140
|
+
});
|
|
141
|
+
return /*#__PURE__*/_jsx(KLabel.Text, {
|
|
142
|
+
typo: "TextMdNormal",
|
|
143
|
+
color: CHAT_BUBBLE_COLORS.text,
|
|
144
|
+
children: parts.map((part, i) => part.isUrl ? /*#__PURE__*/_jsx(Text, {
|
|
145
|
+
style: styles.urlText,
|
|
146
|
+
onPress: () => Linking.openURL(part.text),
|
|
147
|
+
children: part.text
|
|
148
|
+
}, i) : /*#__PURE__*/_jsx(Text, {
|
|
149
|
+
children: part.text
|
|
150
|
+
}, i))
|
|
151
|
+
});
|
|
152
|
+
};
|
|
153
|
+
export const LegendLinkMessage = /*#__PURE__*/memo(({
|
|
154
|
+
message,
|
|
155
|
+
isOutgoing,
|
|
156
|
+
createdAtTime
|
|
157
|
+
}) => {
|
|
158
|
+
const content = message?.urlTextElem?.content;
|
|
159
|
+
const urls = message?.urlTextElem?.urls ?? [];
|
|
160
|
+
const metadata = parseUrlMetadata(message.ex);
|
|
161
|
+
const timeLabel = formatMessageTime(createdAtTime);
|
|
162
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
163
|
+
style: styles.wrapper,
|
|
164
|
+
children: [/*#__PURE__*/_jsxs(KContainer.View, {
|
|
165
|
+
style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
|
|
166
|
+
children: [!!content?.trim() && /*#__PURE__*/_jsx(KContainer.View, {
|
|
167
|
+
style: styles.textRow,
|
|
168
|
+
children: renderTextWithLinks(content, urls)
|
|
169
|
+
}), metadata && /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
170
|
+
style: styles.card,
|
|
171
|
+
onPress: () => metadata.url && Linking.openURL(metadata.url),
|
|
172
|
+
children: [!!metadata.image && /*#__PURE__*/_jsx(KImage.Base, {
|
|
173
|
+
uri: metadata.image,
|
|
174
|
+
style: styles.cardThumb,
|
|
175
|
+
resizeMode: "cover"
|
|
176
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
177
|
+
style: styles.cardBody,
|
|
178
|
+
children: [!!metadata.title && /*#__PURE__*/_jsx(KLabel.Text, {
|
|
179
|
+
typo: "TextNmMedium",
|
|
180
|
+
color: KColors.palette.gray.w900,
|
|
181
|
+
numberOfLines: 1,
|
|
182
|
+
children: metadata.title
|
|
183
|
+
}), !!metadata.url && /*#__PURE__*/_jsx(KLabel.Text, {
|
|
184
|
+
typo: "TextXsMedium",
|
|
185
|
+
color: KColors.palette.primary.w400,
|
|
186
|
+
numberOfLines: 1,
|
|
187
|
+
children: metadata.url
|
|
188
|
+
}), !!metadata.description && /*#__PURE__*/_jsx(KLabel.Text, {
|
|
189
|
+
typo: "TextXsNormal",
|
|
190
|
+
color: KColors.gray.normal,
|
|
191
|
+
numberOfLines: 2,
|
|
192
|
+
children: metadata.description
|
|
193
|
+
})]
|
|
194
|
+
})]
|
|
195
|
+
})]
|
|
196
|
+
}), !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
|
|
197
|
+
typo: "TextXsNormal",
|
|
198
|
+
color: CHAT_BUBBLE_COLORS.timestamp,
|
|
199
|
+
marginL: "0.25rem",
|
|
200
|
+
children: timeLabel
|
|
201
|
+
}) : null]
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
LegendLinkMessage.displayName = 'LegendLinkMessage';
|
|
106
205
|
const styles = StyleSheet.create({
|
|
107
206
|
wrapper: {
|
|
108
207
|
maxWidth: '80%'
|
|
@@ -117,6 +216,29 @@ const styles = StyleSheet.create({
|
|
|
117
216
|
},
|
|
118
217
|
bubbleSent: {
|
|
119
218
|
backgroundColor: CHAT_BUBBLE_COLORS.sent
|
|
219
|
+
},
|
|
220
|
+
textRow: {
|
|
221
|
+
paddingHorizontal: KSpacingValue['0.25rem']
|
|
222
|
+
},
|
|
223
|
+
urlText: {
|
|
224
|
+
color: KColors.palette.primary.w400,
|
|
225
|
+
fontWeight: '500'
|
|
226
|
+
},
|
|
227
|
+
card: {
|
|
228
|
+
borderRadius: KSpacingValue['0.75rem'],
|
|
229
|
+
borderWidth: 1,
|
|
230
|
+
borderColor: 'rgba(57,62,64,0.1)',
|
|
231
|
+
backgroundColor: KColors.white,
|
|
232
|
+
overflow: 'hidden'
|
|
233
|
+
},
|
|
234
|
+
cardThumb: {
|
|
235
|
+
width: '100%',
|
|
236
|
+
aspectRatio: 16 / 9
|
|
237
|
+
},
|
|
238
|
+
cardBody: {
|
|
239
|
+
paddingHorizontal: KSpacingValue['0.75rem'],
|
|
240
|
+
paddingVertical: KSpacingValue['0.5rem'],
|
|
241
|
+
gap: 2
|
|
120
242
|
}
|
|
121
243
|
});
|
|
122
244
|
//# sourceMappingURL=message-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","StyleSheet","KContainer","KLabel","KSpacingValue","getMessageText","CHAT_BUBBLE_COLORS","jsx","_jsx","jsxs","_jsxs","formatMessageTime","createdAt","date","Date","Number","isNaN","getTime","toLocaleTimeString","hour","minute","hour12","LegendTextMessage","message","isOutgoing","createdAtTime","messageText","timeLabel","trim","View","style","styles","wrapper","children","bubble","bubbleSent","bubbleReceived","
|
|
1
|
+
{"version":3,"names":["memo","Linking","StyleSheet","Text","KContainer","KImage","KLabel","KColors","KSpacingValue","getMessageText","CHAT_BUBBLE_COLORS","jsx","_jsx","jsxs","_jsxs","formatMessageTime","createdAt","date","Date","Number","isNaN","getTime","toLocaleTimeString","hour","minute","hour12","LegendTextMessage","message","isOutgoing","createdAtTime","messageText","timeLabel","trim","View","style","styles","wrapper","children","bubble","bubbleSent","bubbleReceived","typo","color","text","timestamp","marginL","displayName","LegendImageMessage","LegendVideoMessage","LegendFileMessage","fileName","fileElem","content","parseUrlMetadata","ex","undefined","JSON","parse","urlMetadata","renderTextWithLinks","urls","length","parts","remaining","url","idx","indexOf","push","slice","isUrl","map","part","i","urlText","onPress","openURL","LegendLinkMessage","urlTextElem","metadata","textRow","Touchable","card","image","Base","uri","cardThumb","resizeMode","cardBody","title","palette","gray","w900","numberOfLines","primary","w400","description","normal","create","maxWidth","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","received","sent","fontWeight","borderWidth","borderColor","white","overflow","width","aspectRatio","gap"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/message-types.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ export const useConversationStore = create()((set, get) => ({
|
|
|
18
18
|
},
|
|
19
19
|
updateConversations(conversations) {
|
|
20
20
|
set(sortConversation(conversations.reduce((pre, curr) => {
|
|
21
|
-
pre[curr.
|
|
21
|
+
pre[curr.conversationID] = curr;
|
|
22
22
|
return pre;
|
|
23
23
|
}, {
|
|
24
24
|
...get().map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","sortConversation","mergeOpenIMIntoConversation","useConversationStore","set","get","list","map","newConversationSignal","setCurrentConversation","id","currentConversationId","getCurrentConversation","updateConversations","conversations","reduce","pre","curr","
|
|
1
|
+
{"version":3,"names":["create","sortConversation","mergeOpenIMIntoConversation","useConversationStore","set","get","list","map","newConversationSignal","setCurrentConversation","id","currentConversationId","getCurrentConversation","updateConversations","conversations","reduce","pre","curr","conversationID","mergeOpenIMConversations","currentMap","hasUnknown","changed","nextMap","openim","existing","s","removeConversation","newMap","filter","item","updateLastMessage","message","conversation","lastMessage","reset","undefined","useConversation","state"],"sourceRoot":"../../../src","sources":["store/conversation.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAChC,SACEC,gBAAgB,EAChBC,2BAA2B,QACtB,0BAAuB;AA4B9B,OAAO,MAAMC,oBAAoB,GAAGH,MAAM,CAAoB,CAAC,CAAC,CAACI,GAAG,EAAEC,GAAG,MAAM;EAC7EC,IAAI,EAAE,EAAE;EACRC,GAAG,EAAE,CAAC,CAAC;EACPC,qBAAqB,EAAE,CAAC;EACxBC,sBAAsBA,CAACC,EAAE,EAAE;IACzBN,GAAG,CAAC;MAAEO,qBAAqB,EAAED;IAAG,CAAC,CAAC;EACpC,CAAC;EACDE,sBAAsBA,CAAA,EAAG;IACvB,MAAMF,EAAE,GAAGL,GAAG,CAAC,CAAC,CAACM,qBAAqB;IACtC,IAAID,EAAE,IAAI,IAAI,EAAE;IAEhB,OAAOL,GAAG,CAAC,CAAC,CAACE,GAAG,CAACG,EAAE,CAAC;EACtB,CAAC;EACDG,mBAAmBA,CAACC,aAAa,EAAE;IACjCV,GAAG,CACDH,gBAAgB,CACda,aAAa,CAACC,MAAM,CAClB,CAACC,GAAG,EAAEC,IAAI,KAAK;MACbD,GAAG,CAACC,IAAI,CAACC,cAAc,CAAC,GAAGD,IAAI;MAC/B,OAAOD,GAAG;IACZ,CAAC,EACD;MAAE,GAAGX,GAAG,CAAC,CAAC,CAACE;IAAI,CACjB,CACF,CACF,CAAC;EACH,CAAC;EACDY,wBAAwBA,CAACL,aAAa,EAAE;IACtC,MAAMM,UAAU,GAAGf,GAAG,CAAC,CAAC,CAACE,GAAG;IAC5B,IAAIc,UAAU,GAAG,KAAK;IACtB,IAAIC,OAAO,GAAG,KAAK;IAEnB,MAAMC,OAAO,GAAG;MAAE,GAAGH;IAAW,CAAC;IACjC,KAAK,MAAMI,MAAM,IAAIV,aAAa,EAAE;MAClC,MAAMW,QAAQ,GAAGL,UAAU,CAACI,MAAM,CAACN,cAAc,CAAC;MAClD,IAAIO,QAAQ,IAAI,IAAI,EAAE;QACpBJ,UAAU,GAAG,IAAI;QACjB;MACF;MACAE,OAAO,CAACC,MAAM,CAACN,cAAc,CAAC,GAAGhB,2BAA2B,CAC1DuB,QAAQ,EACRD,MACF,CAAC;MACDF,OAAO,GAAG,IAAI;IAChB;IAEA,IAAIA,OAAO,EAAE;MACXlB,GAAG,CAACH,gBAAgB,CAACsB,OAAO,CAAC,CAAC;IAChC;IAEA,IAAIF,UAAU,EAAE;MACdjB,GAAG,CAAEsB,CAAC,KAAM;QAAElB,qBAAqB,EAAEkB,CAAC,CAAClB,qBAAqB,GAAG;MAAE,CAAC,CAAC,CAAC;IACtE;IAEA,OAAOa,UAAU;EACnB,CAAC;EACDM,kBAAkBA,CAACjB,EAAE,EAAE;IACrB,MAAMkB,MAAM,GAAG;MAAE,GAAGvB,GAAG,CAAC,CAAC,CAACE;IAAI,CAAC;IAC/B,OAAOqB,MAAM,CAAClB,EAAE,CAAC;IAEjBN,GAAG,CAAC;MACFG,GAAG,EAAEqB,MAAM;MACXtB,IAAI,EAAED,GAAG,CAAC,CAAC,CAACC,IAAI,CAACuB,MAAM,CAAEC,IAAI,IAAKA,IAAI,KAAKpB,EAAE;IAC/C,CAAC,CAAC;EACJ,CAAC;EACDqB,iBAAiBA,CAACrB,EAAE,EAAEsB,OAAO,EAAE;IAC7B,MAAMC,YAAY,GAAG5B,GAAG,CAAC,CAAC,CAACE,GAAG,CAACG,EAAE,CAAC;IAClC,IAAIuB,YAAY,IAAI,IAAI,EAAE;IAE1B7B,GAAG,CACDH,gBAAgB,CAAC;MACf,CAACS,EAAE,GAAG;QAAE,GAAGuB,YAAY;QAAEC,WAAW,EAAEF;MAAQ,CAAC;MAC/C,GAAG3B,GAAG,CAAC,CAAC,CAACE;IACX,CAAC,CACH,CAAC;EACH,CAAC;EACD4B,KAAKA,CAAA,EAAG;IACN/B,GAAG,CAAC;MACFO,qBAAqB,EAAEyB,SAAS;MAChC9B,IAAI,EAAE,EAAE;MACRC,GAAG,EAAE,CAAC,CAAC;MACPC,qBAAqB,EAAE;IACzB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,MAAM6B,eAAe,GAAI3B,EAAU,IAAoC;EAC5E,OAAOP,oBAAoB,CAAEmC,KAAK,IAAKA,KAAK,CAAC/B,GAAG,CAACG,EAAE,CAAC,CAAC;AACvD,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { create } from 'zustand';
|
|
4
|
+
import { mergeMessages } from "../utils/message.js";
|
|
5
|
+
export const useMessageStore = create()((set, get) => ({
|
|
6
|
+
messages: [],
|
|
7
|
+
hasMoreEarlier: false,
|
|
8
|
+
hasMoreNewer: false,
|
|
9
|
+
setMessages: (messages, hasMore) => {
|
|
10
|
+
set({
|
|
11
|
+
messages,
|
|
12
|
+
hasMoreEarlier: hasMore
|
|
13
|
+
});
|
|
14
|
+
},
|
|
15
|
+
pushNewMessage: message => {
|
|
16
|
+
set(state => ({
|
|
17
|
+
messages: mergeMessages(state.messages, [message])
|
|
18
|
+
}));
|
|
19
|
+
},
|
|
20
|
+
updateOneMessage: message => {
|
|
21
|
+
const tmpList = [...get().messages];
|
|
22
|
+
const idx = tmpList.findIndex(msg => msg.clientMsgID === message.clientMsgID);
|
|
23
|
+
if (idx < 0) return;
|
|
24
|
+
tmpList[idx] = {
|
|
25
|
+
...tmpList[idx],
|
|
26
|
+
...message
|
|
27
|
+
};
|
|
28
|
+
set({
|
|
29
|
+
messages: tmpList
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
deleteOneMessage: clientMsgID => {
|
|
33
|
+
set(state => ({
|
|
34
|
+
messages: state.messages.filter(msg => msg.clientMsgID !== clientMsgID)
|
|
35
|
+
}));
|
|
36
|
+
},
|
|
37
|
+
reset: () => {
|
|
38
|
+
set({
|
|
39
|
+
messages: [],
|
|
40
|
+
hasMoreEarlier: false,
|
|
41
|
+
hasMoreNewer: false
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["create","mergeMessages","useMessageStore","set","get","messages","hasMoreEarlier","hasMoreNewer","setMessages","hasMore","pushNewMessage","message","state","updateOneMessage","tmpList","idx","findIndex","msg","clientMsgID","deleteOneMessage","filter","reset"],"sourceRoot":"../../../src","sources":["store/message.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAGhC,SAASC,aAAa,QAAQ,qBAAkB;AAEhD,OAAO,MAAMC,eAAe,GAAGF,MAAM,CAAe,CAAC,CAAC,CAACG,GAAG,EAAEC,GAAG,MAAM;EACnEC,QAAQ,EAAE,EAAE;EACZC,cAAc,EAAE,KAAK;EACrBC,YAAY,EAAE,KAAK;EAEnBC,WAAW,EAAEA,CAACH,QAAQ,EAAEI,OAAO,KAAK;IAClCN,GAAG,CAAC;MAAEE,QAAQ;MAAEC,cAAc,EAAEG;IAAQ,CAAC,CAAC;EAC5C,CAAC;EAEDC,cAAc,EAAGC,OAAoB,IAAK;IACxCR,GAAG,CAAES,KAAK,KAAM;MACdP,QAAQ,EAAEJ,aAAa,CAACW,KAAK,CAACP,QAAQ,EAAE,CAACM,OAAO,CAAiB;IACnE,CAAC,CAAC,CAAC;EACL,CAAC;EAEDE,gBAAgB,EAAGF,OAAoB,IAAK;IAC1C,MAAMG,OAAO,GAAG,CAAC,GAAGV,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;IACnC,MAAMU,GAAG,GAAGD,OAAO,CAACE,SAAS,CAC1BC,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKP,OAAO,CAACO,WACvC,CAAC;IACD,IAAIH,GAAG,GAAG,CAAC,EAAE;IACbD,OAAO,CAACC,GAAG,CAAC,GAAG;MAAE,GAAGD,OAAO,CAACC,GAAG,CAAE;MAAE,GAAGJ;IAAQ,CAAiB;IAC/DR,GAAG,CAAC;MAAEE,QAAQ,EAAES;IAAQ,CAAC,CAAC;EAC5B,CAAC;EAEDK,gBAAgB,EAAGD,WAAmB,IAAK;IACzCf,GAAG,CAAES,KAAK,KAAM;MACdP,QAAQ,EAAEO,KAAK,CAACP,QAAQ,CAACe,MAAM,CAAEH,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKA,WAAW;IAC1E,CAAC,CAAC,CAAC;EACL,CAAC;EAEDG,KAAK,EAAEA,CAAA,KAAM;IACXlB,GAAG,CAAC;MACFE,QAAQ,EAAE,EAAE;MACZC,cAAc,EAAE,KAAK;MACrBC,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
const i18nKey = {
|
|
4
4
|
thread_card_bot_crm_name: 'Droppii Hỗ Trợ',
|
|
5
|
-
thread_card_fallback_name: 'Người dùng'
|
|
5
|
+
thread_card_fallback_name: 'Người dùng',
|
|
6
|
+
msg_type_image: '[Hình ảnh]',
|
|
7
|
+
msg_type_voice: '[Tin nhắn thoại]',
|
|
8
|
+
msg_type_video: '[Video]',
|
|
9
|
+
msg_type_file: '[File đính kèm]',
|
|
10
|
+
msg_type_link: '[Liên kết]',
|
|
11
|
+
msg_type_revoke: 'Đã thu hồi tin nhắn'
|
|
6
12
|
};
|
|
7
13
|
export default {
|
|
8
14
|
vi: i18nKey
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18nKey","thread_card_bot_crm_name","thread_card_fallback_name","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtCC,wBAAwB,EAAE,gBAAgB;EAC1CC,yBAAyB,EAAE;
|
|
1
|
+
{"version":3,"names":["i18nKey","thread_card_bot_crm_name","thread_card_fallback_name","msg_type_image","msg_type_voice","msg_type_video","msg_type_file","msg_type_link","msg_type_revoke","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtCC,wBAAwB,EAAE,gBAAgB;EAC1CC,yBAAyB,EAAE,YAAY;EACvCC,cAAc,EAAE,YAAY;EAC5BC,cAAc,EAAE,kBAAkB;EAClCC,cAAc,EAAE,SAAS;EACzBC,aAAa,EAAE,iBAAiB;EAChCC,aAAa,EAAE,YAAY;EAC3BC,eAAe,EAAE;AACnB,CAAC;AAED,eAAe;EACbC,EAAE,EAAET;AACN,CAAC","ignoreList":[]}
|
package/lib/module/types/chat.js
CHANGED
|
@@ -6,8 +6,8 @@ export const EventProvider = {
|
|
|
6
6
|
netcore: 'netcore'
|
|
7
7
|
};
|
|
8
8
|
export let DChatApplicationType = /*#__PURE__*/function (DChatApplicationType) {
|
|
9
|
-
DChatApplicationType["
|
|
10
|
-
DChatApplicationType["
|
|
9
|
+
DChatApplicationType["DROPPII"] = "DROPPII";
|
|
10
|
+
DChatApplicationType["OBEFE"] = "OBEFE";
|
|
11
11
|
return DChatApplicationType;
|
|
12
12
|
}({});
|
|
13
13
|
export let DChatCategory = /*#__PURE__*/function (DChatCategory) {
|
|
@@ -18,11 +18,6 @@ export let DChatCategory = /*#__PURE__*/function (DChatCategory) {
|
|
|
18
18
|
DChatCategory["BIZ_BOT_CRM"] = "BIZ_BOT_CRM";
|
|
19
19
|
return DChatCategory;
|
|
20
20
|
}({});
|
|
21
|
-
export let DChatType = /*#__PURE__*/function (DChatType) {
|
|
22
|
-
DChatType["SINGLE"] = "SINGLE";
|
|
23
|
-
DChatType["GROUP"] = "GROUP";
|
|
24
|
-
return DChatType;
|
|
25
|
-
}({});
|
|
26
21
|
export let DMemberRole = /*#__PURE__*/function (DMemberRole) {
|
|
27
22
|
DMemberRole["AGENT"] = "AGENT";
|
|
28
23
|
DMemberRole["MEMBER"] = "MEMBER";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EventProvider","ga","appsflyer","netcore","DChatApplicationType","DChatCategory","
|
|
1
|
+
{"version":3,"names":["EventProvider","ga","appsflyer","netcore","DChatApplicationType","DChatCategory","DMemberRole"],"sourceRoot":"../../../src","sources":["types/chat.ts"],"mappings":";;AAQA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,EAAE,EAAE,IAAI;EACRC,SAAS,EAAE,WAAW;EACtBC,OAAO,EAAE;AACX,CAAU;AAkBV,WAAYC,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAKhC,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAQzB,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { SessionType } from '@droppii/openim-rn-client-sdk';
|
|
3
|
+
import { MessageType, SessionType } from '@droppii/openim-rn-client-sdk';
|
|
4
|
+
import { trans } from "../translation/index.js";
|
|
4
5
|
export const conversationCompare = (a, b) => {
|
|
5
6
|
if (a.isPinned !== b.isPinned) return a.isPinned ? -1 : 1;
|
|
6
7
|
const aCompare = a.draftTextTime > a.latestMsgSendTime ? a.draftTextTime : a.latestMsgSendTime;
|
|
@@ -8,30 +9,28 @@ export const conversationCompare = (a, b) => {
|
|
|
8
9
|
return bCompare - aCompare;
|
|
9
10
|
};
|
|
10
11
|
export const dConversationCompare = (a, b) => {
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const bCreateTime = b.lastMessage?.createTime ?? 0;
|
|
16
|
-
return bCreateTime - aCreateTime;
|
|
12
|
+
if (a.isPinned !== b.isPinned) return a.isPinned ? -1 : 1;
|
|
13
|
+
const aTime = a.draftTextTime > a.latestMsgSendTime ? a.draftTextTime : a.latestMsgSendTime;
|
|
14
|
+
const bTime = b.draftTextTime > b.latestMsgSendTime ? b.draftTextTime : b.latestMsgSendTime;
|
|
15
|
+
return bTime - aTime;
|
|
17
16
|
};
|
|
18
|
-
export const mergeOpenIMIntoConversation = (
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
17
|
+
export const mergeOpenIMIntoConversation = (existing, openim) => {
|
|
20
18
|
const {
|
|
21
19
|
latestMsg,
|
|
22
|
-
conversationID,
|
|
23
20
|
...openimRest
|
|
24
21
|
} = openim;
|
|
25
|
-
let lastMessage =
|
|
22
|
+
let lastMessage = existing.lastMessage;
|
|
26
23
|
if (latestMsg) {
|
|
27
24
|
try {
|
|
28
25
|
lastMessage = JSON.parse(latestMsg);
|
|
29
26
|
} catch {
|
|
30
|
-
// keep
|
|
27
|
+
// keep existing lastMessage if parse fails
|
|
31
28
|
}
|
|
32
29
|
}
|
|
30
|
+
|
|
31
|
+
// Spread existing first so peerType (not in ConversationItem) is preserved
|
|
33
32
|
return {
|
|
34
|
-
...
|
|
33
|
+
...existing,
|
|
35
34
|
...openimRest,
|
|
36
35
|
lastMessage
|
|
37
36
|
};
|
|
@@ -47,4 +46,26 @@ export const sortConversation = map => {
|
|
|
47
46
|
list
|
|
48
47
|
};
|
|
49
48
|
};
|
|
49
|
+
export const generateContentBasedOnMessageType = (contentType, plainText) => {
|
|
50
|
+
switch (contentType) {
|
|
51
|
+
case MessageType.TextMessage:
|
|
52
|
+
case MessageType.QuoteMessage:
|
|
53
|
+
case MessageType.LogTextMessage:
|
|
54
|
+
return plainText || '';
|
|
55
|
+
case MessageType.PictureMessage:
|
|
56
|
+
return trans('msg_type_image');
|
|
57
|
+
case MessageType.VoiceMessage:
|
|
58
|
+
return trans('msg_type_voice');
|
|
59
|
+
case MessageType.VideoMessage:
|
|
60
|
+
return trans('msg_type_video');
|
|
61
|
+
case MessageType.FileMessage:
|
|
62
|
+
return trans('msg_type_file');
|
|
63
|
+
case MessageType.UrlTextMessage:
|
|
64
|
+
return trans('msg_type_link');
|
|
65
|
+
case MessageType.RevokeMessage:
|
|
66
|
+
return trans('revoked');
|
|
67
|
+
default:
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
};
|
|
50
71
|
//# sourceMappingURL=conversation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SessionType","conversationCompare","a","b","isPinned","aCompare","draftTextTime","latestMsgSendTime","bCompare","dConversationCompare","
|
|
1
|
+
{"version":3,"names":["MessageType","SessionType","trans","conversationCompare","a","b","isPinned","aCompare","draftTextTime","latestMsgSendTime","bCompare","dConversationCompare","aTime","bTime","mergeOpenIMIntoConversation","existing","openim","latestMsg","openimRest","lastMessage","JSON","parse","getConversationID","sessionType","senderID","receiverID","prefix","Single","Notification","filter","Boolean","join","sortConversation","map","list","Object","keys","sort","generateContentBasedOnMessageType","contentType","plainText","TextMessage","QuoteMessage","LogTextMessage","PictureMessage","VoiceMessage","VideoMessage","FileMessage","UrlTextMessage","RevokeMessage"],"sourceRoot":"../../../src","sources":["utils/conversation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { MessageType } from '@droppii/openim-rn-client-sdk';
|
|
4
|
-
import { resolveChatMessageType } from "./resolveMessageType.js";
|
|
5
4
|
/**
|
|
6
5
|
* Extract message text based on content type
|
|
7
6
|
*/
|
|
@@ -50,11 +49,9 @@ export const precomputeLegendListData = messages => {
|
|
|
50
49
|
const messageId = message.clientMsgID || message.serverMsgID || `temp-${message.sendTime || message.createTime}-${index}`;
|
|
51
50
|
const createdAt = message.sendTime || message.createTime;
|
|
52
51
|
const day = new Date(createdAt).getDate();
|
|
53
|
-
const messageType = resolveChatMessageType(message);
|
|
54
52
|
dataMap.set(messageId, {
|
|
55
53
|
messageId,
|
|
56
54
|
dayStart: lastDay !== day,
|
|
57
|
-
messageType,
|
|
58
55
|
createdAt
|
|
59
56
|
});
|
|
60
57
|
lastDay = day;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MessageType","
|
|
1
|
+
{"version":3,"names":["MessageType","getMessageText","message","contentType","TextMessage","textElem","content","AtTextMessage","atTextElem","text","QuoteMessage","quoteElem","PictureMessage","VoiceMessage","soundElem","sourceUrl","VideoMessage","videoElem","videoUrl","FileMessage","fileElem","fileName","CardMessage","cardElem","nickname","LocationMessage","locationElem","description","CustomMessage","customElem","FaceMessage","notificationElem","detail","precomputeLegendListData","messages","dataMap","Map","lastDay","forEach","index","messageId","clientMsgID","serverMsgID","sendTime","createTime","createdAt","day","Date","getDate","set","dayStart","computeDayStarts","dayStartMap"],"sourceRoot":"../../../src","sources":["utils/legendListMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { SessionType } from '@droppii/openim-rn-client-sdk';
|
|
4
|
-
import { DChatType } from "../types/chat.js";
|
|
3
|
+
import { PeerType, SessionType } from '@droppii/openim-rn-client-sdk';
|
|
5
4
|
import { getConversationID } from "./conversation.js";
|
|
6
5
|
const getMessageTime = message => message.sendTime || message.createTime || 0;
|
|
7
6
|
const getMessageKey = message => message.clientMsgID || message.serverMsgID;
|
|
@@ -72,11 +71,9 @@ export const getReceiverId = conversation => {
|
|
|
72
71
|
groupID: '',
|
|
73
72
|
recvID: ''
|
|
74
73
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
const groupID = isBot ? conversation.conversationId?.slice(3) // Remove sg_
|
|
79
|
-
: conversation.groupID;
|
|
74
|
+
if (conversation.peerType === PeerType.Group) {
|
|
75
|
+
// Group conversation: groupID is embedded after the "sg_" prefix
|
|
76
|
+
const groupID = conversation.groupID || conversation.conversationID.slice(3);
|
|
80
77
|
return {
|
|
81
78
|
groupID: groupID ?? '',
|
|
82
79
|
recvID: ''
|
|
@@ -84,7 +81,7 @@ export const getReceiverId = conversation => {
|
|
|
84
81
|
}
|
|
85
82
|
return {
|
|
86
83
|
groupID: '',
|
|
87
|
-
recvID: conversation.
|
|
84
|
+
recvID: conversation.userID ?? ''
|
|
88
85
|
};
|
|
89
86
|
};
|
|
90
87
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PeerType","SessionType","getConversationID","getMessageTime","message","sendTime","createTime","getMessageKey","clientMsgID","serverMsgID","mergeMessages","current","incoming","map","Map","key","set","Array","from","values","sort","a","b","normalizeCreatedMessage","normalized","JSON","parse","Error","resolveHistoryLastMinSeq","history","fallbackMessage","lastMinSeq","seq","getHistoryPaginationAnchor","messages","length","oldest","reduce","prev","curr","hasNewHistoryMessages","currentKeys","Set","filter","Boolean","some","has","belongsToConversation","conversationId","sessionType","Single","forwardId","sendID","recvID","reverseId","Group","groupID","getReceiverId","conversation","peerType","conversationID","slice","userID"],"sourceRoot":"../../../src","sources":["utils/message.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/utils/url.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const URL_REGEX =
|
|
4
|
-
export function
|
|
5
|
-
return text.match(URL_REGEX)
|
|
3
|
+
const URL_REGEX = /\bhttps?:\/\/[^\s<>"']*[^\s<>"',.!?()\[\]{}]/g;
|
|
4
|
+
export function extractUrls(text) {
|
|
5
|
+
return text.match(URL_REGEX) ?? [];
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=url.js.map
|