@droppii-org/chat-mobile 0.2.35 → 0.2.38
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/messages/linkMessage/index.js +1 -10
- package/lib/module/components/messages/linkMessage/index.js.map +1 -1
- package/lib/module/components/messages/quotedMessage/index.js +173 -0
- package/lib/module/components/messages/quotedMessage/index.js.map +1 -0
- package/lib/module/context/ChatContext.js +26 -22
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/context/ChatDetailContext.js +7 -4
- package/lib/module/context/ChatDetailContext.js.map +1 -1
- package/lib/module/core/useChatListener.js +0 -1
- package/lib/module/core/useChatListener.js.map +1 -1
- package/lib/module/core/useUserListener.js +12 -21
- package/lib/module/core/useUserListener.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +26 -4
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useChatMessages.js.map +1 -1
- package/lib/module/hooks/useFileAttachment.js +3 -1
- package/lib/module/hooks/useFileAttachment.js.map +1 -1
- package/lib/module/index.js +0 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +2 -1
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatCurrentQuotedMessage.js +142 -0
- package/lib/module/screens/chat-detail/ChatCurrentQuotedMessage.js.map +1 -0
- package/lib/module/screens/chat-detail/ChatDetail.js +10 -1
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/PinnedMessageBar.js +8 -3
- package/lib/module/screens/chat-detail/PinnedMessageBar.js.map +1 -1
- package/lib/module/screens/chat-detail/PinnedMessagesSheet.js +173 -0
- package/lib/module/screens/chat-detail/PinnedMessagesSheet.js.map +1 -0
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +2 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js +17 -1
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js.map +1 -1
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js +11 -1
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js.map +1 -1
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js +1 -0
- package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js.map +1 -1
- package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js +5 -2
- package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js.map +1 -1
- package/lib/module/screens/inbox/Inbox.js +1 -5
- package/lib/module/screens/inbox/Inbox.js.map +1 -1
- package/lib/module/services/apis.js +0 -3
- package/lib/module/services/apis.js.map +1 -1
- package/lib/module/services/message.js.map +1 -1
- package/lib/module/store/message.js.map +1 -1
- package/lib/module/store/pinnedMessage.js.map +1 -1
- package/lib/module/store/user.js +2 -3
- package/lib/module/store/user.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +9 -2
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/auth.js +0 -7
- package/lib/module/types/auth.js.map +1 -1
- package/lib/module/types/chat.js +12 -0
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/utils/UIUtils.js +6 -0
- package/lib/module/utils/UIUtils.js.map +1 -1
- package/lib/module/utils/legendListMessage.js +1 -0
- package/lib/module/utils/legendListMessage.js.map +1 -1
- package/lib/module/utils/message.js.map +1 -1
- package/lib/module/utils/messageUtils.js +18 -1
- package/lib/module/utils/messageUtils.js.map +1 -1
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/quotedMessage/index.d.ts +7 -0
- package/lib/typescript/src/components/messages/quotedMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/types.d.ts +2 -2
- package/lib/typescript/src/components/messages/types.d.ts.map +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/context/ChatDetailContext.d.ts.map +1 -1
- package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
- package/lib/typescript/src/core/useUserListener.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/usePinMessage.d.ts +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +2 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useChatMessages.d.ts +2 -2
- package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFileAttachment.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatCurrentQuotedMessage.d.ts +2 -0
- package/lib/typescript/src/screens/chat-detail/ChatCurrentQuotedMessage.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/PinnedMessageBar.d.ts +4 -3
- package/lib/typescript/src/screens/chat-detail/PinnedMessageBar.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheet.d.ts +9 -0
- package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheet.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +2 -3
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts +11 -7
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts +4 -4
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts +5 -3
- package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/messageToolbox/types.d.ts +2 -2
- package/lib/typescript/src/screens/chat-detail/messageToolbox/types.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/types.d.ts +5 -5
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/screens/inbox/Inbox.d.ts.map +1 -1
- package/lib/typescript/src/services/apis.d.ts +0 -1
- package/lib/typescript/src/services/apis.d.ts.map +1 -1
- package/lib/typescript/src/services/message.d.ts +1 -2
- package/lib/typescript/src/services/message.d.ts.map +1 -1
- package/lib/typescript/src/store/message.d.ts.map +1 -1
- package/lib/typescript/src/store/pinnedMessage.d.ts +4 -4
- package/lib/typescript/src/store/pinnedMessage.d.ts.map +1 -1
- package/lib/typescript/src/store/user.d.ts +4 -4
- package/lib/typescript/src/store/user.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/auth.d.ts +0 -5
- package/lib/typescript/src/types/auth.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +19 -36
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/utils/UIUtils.d.ts.map +1 -1
- package/lib/typescript/src/utils/legendListMessage.d.ts +4 -4
- package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -1
- package/lib/typescript/src/utils/message.d.ts +4 -5
- package/lib/typescript/src/utils/message.d.ts.map +1 -1
- package/lib/typescript/src/utils/messageUtils.d.ts +9 -7
- package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/messages/linkMessage/index.tsx +1 -11
- package/src/components/messages/quotedMessage/index.tsx +197 -0
- package/src/components/messages/types.ts +2 -2
- package/src/context/ChatContext.tsx +30 -25
- package/src/context/ChatDetailContext.tsx +9 -3
- package/src/core/useChatListener.ts +0 -1
- package/src/core/useUserListener.ts +9 -25
- package/src/hooks/message/useSendMessage.ts +25 -4
- package/src/hooks/useChatMessages.ts +4 -6
- package/src/hooks/useFileAttachment.ts +3 -1
- package/src/index.tsx +5 -6
- package/src/screens/chat-detail/ChatComposer.tsx +2 -0
- package/src/screens/chat-detail/ChatCurrentQuotedMessage.tsx +150 -0
- package/src/screens/chat-detail/ChatDetail.tsx +13 -2
- package/src/screens/chat-detail/ChatListLegend.tsx +3 -3
- package/src/screens/chat-detail/PinnedMessageBar.tsx +53 -49
- package/src/screens/chat-detail/PinnedMessagesSheet.tsx +243 -0
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +4 -4
- package/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx +30 -6
- package/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx +15 -6
- package/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx +1 -0
- package/src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts +21 -12
- package/src/screens/chat-detail/messageToolbox/types.ts +2 -2
- package/src/screens/chat-detail/types.ts +5 -5
- package/src/screens/inbox/Inbox.tsx +1 -5
- package/src/services/apis.ts +0 -4
- package/src/services/message.ts +1 -2
- package/src/store/message.ts +3 -3
- package/src/store/pinnedMessage.ts +4 -4
- package/src/store/user.ts +5 -5
- package/src/translation/resources/i18n.ts +10 -1
- package/src/types/auth.ts +0 -6
- package/src/types/chat.ts +19 -40
- package/src/utils/UIUtils.ts +5 -0
- package/src/utils/legendListMessage.ts +4 -5
- package/src/utils/message.ts +10 -11
- package/src/utils/messageUtils.ts +37 -9
|
@@ -6,17 +6,17 @@ import {
|
|
|
6
6
|
MessageType,
|
|
7
7
|
PeerType,
|
|
8
8
|
type ConversationItem,
|
|
9
|
+
type MessageItem,
|
|
9
10
|
} from '@droppii/openim-rn-client-sdk';
|
|
10
|
-
import { type DMessageItem } from '../types/chat';
|
|
11
|
-
import type { IUrlMetadata } from '../types/common';
|
|
12
11
|
import { formatDuration } from './dateTimeUtils';
|
|
13
12
|
import { getFileIcon, getMimeType } from './imageUtils';
|
|
14
13
|
import { trans } from '../translation';
|
|
14
|
+
import type { IUrlMetadata } from '../types/common';
|
|
15
15
|
|
|
16
|
-
export const isMessageRevoked = (message:
|
|
16
|
+
export const isMessageRevoked = (message: MessageItem): boolean =>
|
|
17
17
|
message.contentType === MessageType.RevokeMessage;
|
|
18
18
|
|
|
19
|
-
export const extractTextContent = (message:
|
|
19
|
+
export const extractTextContent = (message: MessageItem): string => {
|
|
20
20
|
if (message.textElem?.content) return message.textElem.content;
|
|
21
21
|
try {
|
|
22
22
|
const parsed = JSON.parse(message.content) as { content?: string };
|
|
@@ -26,7 +26,8 @@ export const extractTextContent = (message: DMessageItem): string => {
|
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
export const getMessagePreview = (message
|
|
29
|
+
export const getMessagePreview = (message?: MessageItem): string => {
|
|
30
|
+
if (!message) return '';
|
|
30
31
|
// Handle standard message types
|
|
31
32
|
switch (message.contentType) {
|
|
32
33
|
case MessageType.TextMessage:
|
|
@@ -78,9 +79,11 @@ export const getMessagePreview = (message: DMessageItem): string => {
|
|
|
78
79
|
return urlText ? urlText : '';
|
|
79
80
|
|
|
80
81
|
case MessageType.AtTextMessage:
|
|
81
|
-
case MessageType.QuoteMessage:
|
|
82
82
|
return extractTextContent(message);
|
|
83
83
|
|
|
84
|
+
case MessageType.QuoteMessage:
|
|
85
|
+
return message?.quoteElem?.text || '';
|
|
86
|
+
|
|
84
87
|
case MessageType.RevokeMessage:
|
|
85
88
|
return trans('msg_type_revoke');
|
|
86
89
|
|
|
@@ -110,7 +113,7 @@ const getImageUrl = (pictureElem: any): string | undefined =>
|
|
|
110
113
|
|
|
111
114
|
// Link messages carry their rich-preview metadata (title/description/image)
|
|
112
115
|
// as a JSON string in `ex`, set by useSendMessage's IMessageItemEx payload.
|
|
113
|
-
const getUrlMetadata = (message:
|
|
116
|
+
const getUrlMetadata = (message: MessageItem): IUrlMetadata | undefined => {
|
|
114
117
|
if (!message.ex) return undefined;
|
|
115
118
|
try {
|
|
116
119
|
const parsed = JSON.parse(message.ex) as { urlMetadata?: IUrlMetadata };
|
|
@@ -121,7 +124,7 @@ const getUrlMetadata = (message: DMessageItem): IUrlMetadata | undefined => {
|
|
|
121
124
|
};
|
|
122
125
|
|
|
123
126
|
export const getPinnedMessagePreview = (
|
|
124
|
-
message:
|
|
127
|
+
message: MessageItem
|
|
125
128
|
): PinnedMessagePreview => {
|
|
126
129
|
switch (message.contentType) {
|
|
127
130
|
case MessageType.PictureMessage: {
|
|
@@ -183,7 +186,7 @@ export const getPinnedMessagePreview = (
|
|
|
183
186
|
};
|
|
184
187
|
|
|
185
188
|
export const getLastMessageText = (
|
|
186
|
-
message:
|
|
189
|
+
message: MessageItem | undefined,
|
|
187
190
|
currentUserId?: string,
|
|
188
191
|
conversation?: ConversationItem
|
|
189
192
|
): string => {
|
|
@@ -205,3 +208,28 @@ export const getLastMessageText = (
|
|
|
205
208
|
? trans('chat:revoked_by_sender', { sender })
|
|
206
209
|
: `${sender}: ${preview}`;
|
|
207
210
|
};
|
|
211
|
+
|
|
212
|
+
export const getReplySenderName = (
|
|
213
|
+
message?: MessageItem,
|
|
214
|
+
currentUserId?: string,
|
|
215
|
+
conversation?: ConversationItem,
|
|
216
|
+
isSent?: boolean
|
|
217
|
+
): string => {
|
|
218
|
+
if (!message) return '';
|
|
219
|
+
if (currentUserId && message.sendID === currentUserId)
|
|
220
|
+
return trans(isSent ? 'you' : 'yourself');
|
|
221
|
+
return conversation?.peerType === PeerType.Bot
|
|
222
|
+
? conversation?.showName || ''
|
|
223
|
+
: message?.senderNickname || '';
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
export const parseUrlMetadata = (ex?: string): IUrlMetadata | undefined => {
|
|
227
|
+
if (!ex) return undefined;
|
|
228
|
+
try {
|
|
229
|
+
const parsed = JSON.parse(ex) as any;
|
|
230
|
+
// Handle nested urlMetadata structure
|
|
231
|
+
return parsed?.urlMetadata || undefined;
|
|
232
|
+
} catch {
|
|
233
|
+
return undefined;
|
|
234
|
+
}
|
|
235
|
+
};
|