@droppii-org/chat-mobile 0.2.22 → 0.2.24

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.
Files changed (97) hide show
  1. package/lib/module/components/messages/linkMessage/index.js +1 -2
  2. package/lib/module/components/messages/linkMessage/index.js.map +1 -1
  3. package/lib/module/config/uploadLimits.js +13 -0
  4. package/lib/module/config/uploadLimits.js.map +1 -0
  5. package/lib/module/hooks/useChatCompose.js +142 -0
  6. package/lib/module/hooks/useChatCompose.js.map +1 -0
  7. package/lib/module/hooks/useImageAttachment.js +71 -151
  8. package/lib/module/hooks/useImageAttachment.js.map +1 -1
  9. package/lib/module/hooks/useSendAttachment.js +2 -2
  10. package/lib/module/hooks/useSendAttachment.js.map +1 -1
  11. package/lib/module/hooks/useVideoAttachment.js +4 -4
  12. package/lib/module/hooks/useVideoAttachment.js.map +1 -1
  13. package/lib/module/index.js +0 -1
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/screens/chat-detail/ChatComposer.js +50 -185
  16. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  17. package/lib/module/screens/chat-detail/ChatDetail.js +16 -137
  18. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  19. package/lib/module/screens/chat-detail/index.js +0 -1
  20. package/lib/module/screens/chat-detail/index.js.map +1 -1
  21. package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +2 -2
  22. package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -1
  23. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +3 -3
  24. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -1
  25. package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +2 -1
  26. package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js.map +1 -1
  27. package/lib/module/services/attachmentOrchestrator.js +6 -5
  28. package/lib/module/services/attachmentOrchestrator.js.map +1 -1
  29. package/lib/module/utils/imageUtils.js +3 -3
  30. package/lib/module/utils/imageUtils.js.map +1 -1
  31. package/lib/module/utils/pLimit.js +19 -0
  32. package/lib/module/utils/pLimit.js.map +1 -0
  33. package/lib/module/utils/videoThumbnail.js +8 -3
  34. package/lib/module/utils/videoThumbnail.js.map +1 -1
  35. package/lib/module/utils/videoThumbnailUpload.js +76 -0
  36. package/lib/module/utils/videoThumbnailUpload.js.map +1 -0
  37. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
  38. package/lib/typescript/src/config/uploadLimits.d.ts +7 -0
  39. package/lib/typescript/src/config/uploadLimits.d.ts.map +1 -0
  40. package/lib/typescript/src/hooks/useChatCompose.d.ts +27 -0
  41. package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -0
  42. package/lib/typescript/src/hooks/useImageAttachment.d.ts +2 -2
  43. package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
  44. package/lib/typescript/src/hooks/useSendAttachment.d.ts +1 -1
  45. package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -1
  46. package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +1 -1
  47. package/lib/typescript/src/index.d.ts +0 -2
  48. package/lib/typescript/src/index.d.ts.map +1 -1
  49. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +5 -2
  50. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  51. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
  52. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  53. package/lib/typescript/src/screens/chat-detail/index.d.ts +0 -2
  54. package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
  55. package/lib/typescript/src/screens/chat-detail/types.d.ts +1 -35
  56. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  57. package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -1
  58. package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts.map +1 -1
  59. package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts.map +1 -1
  60. package/lib/typescript/src/services/attachmentOrchestrator.d.ts +1 -1
  61. package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
  62. package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
  63. package/lib/typescript/src/utils/pLimit.d.ts +6 -0
  64. package/lib/typescript/src/utils/pLimit.d.ts.map +1 -0
  65. package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -1
  66. package/lib/typescript/src/utils/videoThumbnailUpload.d.ts +11 -0
  67. package/lib/typescript/src/utils/videoThumbnailUpload.d.ts.map +1 -0
  68. package/package.json +1 -1
  69. package/src/components/messages/linkMessage/index.tsx +5 -7
  70. package/src/config/uploadLimits.ts +11 -0
  71. package/src/hooks/useChatCompose.ts +186 -0
  72. package/src/hooks/useImageAttachment.ts +110 -197
  73. package/src/hooks/useSendAttachment.ts +3 -6
  74. package/src/hooks/useVideoAttachment.ts +4 -4
  75. package/src/index.tsx +1 -5
  76. package/src/screens/chat-detail/ChatComposer.tsx +88 -240
  77. package/src/screens/chat-detail/ChatDetail.tsx +24 -195
  78. package/src/screens/chat-detail/index.ts +1 -5
  79. package/src/screens/chat-detail/types.ts +1 -38
  80. package/src/services/attachmentHandlers/fileAttachmentHandler.ts +3 -2
  81. package/src/services/attachmentHandlers/imageAttachmentHandler.ts +6 -3
  82. package/src/services/attachmentHandlers/videoAttachmentHandler.ts +2 -1
  83. package/src/services/attachmentOrchestrator.ts +6 -8
  84. package/src/utils/imageUtils.ts +3 -4
  85. package/src/utils/pLimit.ts +20 -0
  86. package/src/utils/videoThumbnail.ts +10 -3
  87. package/src/utils/videoThumbnailUpload.ts +103 -0
  88. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +0 -288
  89. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +0 -1
  90. package/lib/module/utils/giftedChatMessage.js +0 -90
  91. package/lib/module/utils/giftedChatMessage.js.map +0 -1
  92. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +0 -26
  93. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +0 -1
  94. package/lib/typescript/src/utils/giftedChatMessage.d.ts +0 -10
  95. package/lib/typescript/src/utils/giftedChatMessage.d.ts.map +0 -1
  96. package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +0 -386
  97. package/src/utils/giftedChatMessage.ts +0 -137
@@ -1,288 +0,0 @@
1
- "use strict";
2
-
3
- import { useCallback } from 'react';
4
- import RNFS from 'react-native-fs';
5
- import { isVideoFromPicker } from "../../../utils/imageUtils.js";
6
- import VideoThumbnailUtil from "../../../utils/videoThumbnail.js";
7
- import { ImageUploadAPI } from "../../../services/imageUpload.js";
8
- import UIUtils from "../../../utils/ui.js";
9
- export const useAttachmentSendHandler = ({
10
- selectedImages,
11
- selectedFiles,
12
- sendAttachments,
13
- clearAllImages,
14
- clearAllFiles,
15
- onSend,
16
- onMessageSent,
17
- textMessage,
18
- urlMetadata,
19
- onSendText
20
- }) => {
21
- const handleSend = useCallback(async () => {
22
- console.log('[ChatComposer] handleSend called', {
23
- selectedImagesCount: selectedImages.length,
24
- selectedImagesData: selectedImages.map(img => ({
25
- filename: img.image.filename,
26
- isUploading: img.isUploading,
27
- uploadedUrl: img.uploadedUrl ? 'SET' : 'MISSING',
28
- uploadProgress: img.uploadProgress
29
- }))
30
- });
31
-
32
- // Separate images and videos from selectedImages
33
- const actualImages = selectedImages.filter(img => !isVideoFromPicker(img.image));
34
- const videosFromGallery = selectedImages.filter(img => isVideoFromPicker(img.image));
35
- console.log('🎬 [ChatComposer] Separation result:', {
36
- actualImagesCount: actualImages.length,
37
- videosFromGalleryCount: videosFromGallery.length,
38
- videosFromGalleryList: videosFromGallery.map(v => ({
39
- filename: v.image.filename,
40
- uploadedUrl: v.uploadedUrl
41
- }))
42
- });
43
- const uploadedImages = actualImages.filter(img => img.uploadedUrl);
44
- const uploadedVideosFromGallery = videosFromGallery.filter(vid => vid.uploadedUrl);
45
-
46
- // Auto-generate thumbnails for gallery videos
47
- // Use unique ID per video to avoid race conditions and path mismatches
48
- const galleryVideoThumbnails = {};
49
- const failedVideos = []; // Track failed videos
50
-
51
- if (uploadedVideosFromGallery.length > 0) {
52
- console.log('[ChatComposer] Auto-generating thumbnails for gallery videos...');
53
- for (let idx = 0; idx < uploadedVideosFromGallery.length; idx++) {
54
- const vidItem = uploadedVideosFromGallery[idx];
55
- const videoId = vidItem.uploadedUrl || `video-${idx}`; // Use unique ID instead of path
56
- let cachedVideoPath = null;
57
- try {
58
- const originalVideoPath = vidItem.image.path;
59
- let videoDuration = vidItem.image.duration || 0;
60
- const videoMime = vidItem.image.mime;
61
- const filename = vidItem.image.filename || 'video.mp4';
62
- console.log('[ChatComposer] Generating thumbnail for video:', {
63
- index: idx,
64
- filename,
65
- originalVideoPath,
66
- videoDuration,
67
- videoMime,
68
- uploadedUrl: vidItem.uploadedUrl
69
- });
70
-
71
- // ✅ FIX: Validate duration is reasonable
72
- if (videoDuration <= 0 || videoDuration > 3600000) {
73
- // Duration should be between 0 and 1 hour (3600000ms)
74
- console.warn('[ChatComposer] Invalid duration, using default:', videoDuration);
75
- videoDuration = 5000; // Default 5 seconds
76
- }
77
-
78
- // Copy video to persistent location
79
- const ext = filename.split('.').pop() || 'mp4';
80
- // ✅ FIX: Use unique ID to avoid race condition
81
- const cachedFileName = `thumb-cache-${idx}-${Date.now()}-${Math.random().toString(36).slice(2)}.${ext}`;
82
- cachedVideoPath = `${RNFS.DocumentDirectoryPath}/${cachedFileName}`;
83
- console.log('[ChatComposer] Copying video to cache:', {
84
- from: originalVideoPath,
85
- to: cachedVideoPath
86
- });
87
- await RNFS.copyFile(originalVideoPath, cachedVideoPath);
88
- console.log('[ChatComposer] Video cached successfully');
89
-
90
- // ✅ FIX: Choose frame at 30-40% for better representation
91
- // (not exactly middle, to avoid black frames/transitions)
92
- const timeMs = Math.min(Math.max(1000, Math.floor(videoDuration * 0.35)), videoDuration - 1000);
93
- console.log('[ChatComposer] Thumbnail settings for video:', {
94
- index: idx,
95
- videoDuration,
96
- timeMs,
97
- quality: 80,
98
- videoPath: cachedVideoPath
99
- });
100
-
101
- // Generate thumbnail from cached copy
102
- const thumbnail = await VideoThumbnailUtil.generateThumbnail(cachedVideoPath, {
103
- time: timeMs,
104
- quality: 80,
105
- cacheId: `thumb-${idx}-${Date.now()}`
106
- });
107
- if (!thumbnail) {
108
- throw new Error('Failed to generate thumbnail');
109
- }
110
- console.log('[ChatComposer] Thumbnail generated for video:', {
111
- index: idx,
112
- path: thumbnail.path,
113
- width: thumbnail.width,
114
- height: thumbnail.height
115
- });
116
-
117
- // Upload thumbnail
118
- const baseName = vidItem.image.filename?.split('.')[0] || `video-${idx}`;
119
- const uploadedThumbnail = await ImageUploadAPI.uploadImageFile({
120
- path: thumbnail.path,
121
- filename: `thumb-${baseName}.jpg`,
122
- size: 0,
123
- width: thumbnail.width || 320,
124
- height: thumbnail.height || 180,
125
- mime: 'image/jpeg'
126
- }, progress => {
127
- console.log('[ChatComposer] Thumbnail upload progress:', {
128
- videoIndex: idx,
129
- percentage: progress
130
- });
131
- });
132
- if (!uploadedThumbnail?.url) {
133
- throw new Error('No thumbnail URL returned');
134
- }
135
-
136
- // ✅ FIX: Store with unique ID instead of path
137
- galleryVideoThumbnails[videoId] = {
138
- url: uploadedThumbnail.url,
139
- size: uploadedThumbnail.size || 0
140
- };
141
- console.log('[ChatComposer] Thumbnail ready for video:', {
142
- videoIndex: idx,
143
- videoId,
144
- url: uploadedThumbnail.url,
145
- size: uploadedThumbnail.size
146
- });
147
- console.log(`✅ [ChatComposer] Video #${idx} THUMBNAIL URL: ${uploadedThumbnail.url}`);
148
- } catch (error) {
149
- // ✅ FIX: Skip failed video instead of aborting all
150
- const errorMsg = error instanceof Error ? error.message : String(error);
151
- console.error('[ChatComposer] Thumbnail generation error for video:', idx, errorMsg);
152
- failedVideos.push(vidItem.image.filename);
153
-
154
- // Mark this video as failed (no thumbnail)
155
- galleryVideoThumbnails[videoId] = {
156
- url: '',
157
- size: 0
158
- };
159
- } finally {
160
- // Cleanup cached video file
161
- if (cachedVideoPath) {
162
- try {
163
- await RNFS.unlink(cachedVideoPath);
164
- console.log('[ChatComposer] Cleaned up cached video:', {
165
- videoIndex: idx,
166
- path: cachedVideoPath
167
- });
168
- } catch (err) {
169
- console.warn('[ChatComposer] Failed to clean cached video:', err);
170
- }
171
- }
172
- }
173
- }
174
-
175
- // Show error about failed videos if any
176
- if (failedVideos.length > 0) {
177
- UIUtils.toast.open({
178
- title: 'Thumbnail Generation Failed',
179
- message: `Failed for: ${failedVideos.join(', ')}. Videos will be sent without thumbnails.`,
180
- theme: 'warning'
181
- });
182
- console.warn('[ChatComposer] Failed to generate thumbnails for:', failedVideos);
183
- }
184
- }
185
- const allUploadedVideos = [...uploadedVideosFromGallery];
186
- console.log('[ChatComposer] handleSend summary:', {
187
- actualImages: actualImages.length,
188
- uploadedImages: uploadedImages.length,
189
- videosFromGallery: videosFromGallery.length,
190
- uploadedVideosFromGallery: uploadedVideosFromGallery.length,
191
- allUploadedVideos: allUploadedVideos.length
192
- });
193
-
194
- // Log thumbnail URLs
195
- if (uploadedVideosFromGallery.length > 0) {
196
- uploadedVideosFromGallery.forEach((vid, vidIdx) => {
197
- // ✅ Use same key as storage: uploadedUrl or video-${idx}
198
- const videoId = vid.uploadedUrl || `video-${vidIdx}`;
199
- const thumbnail = galleryVideoThumbnails[videoId];
200
- console.log(`✅ [ChatComposer] Gallery Video Thumbnail:`, {
201
- filename: vid.image.filename,
202
- videoId,
203
- thumbnailUrl: thumbnail?.url || 'NOT FOUND',
204
- videoUrl: vid.uploadedUrl
205
- });
206
- });
207
- }
208
-
209
- // Send images and videos if any
210
- if (uploadedImages.length > 0 || allUploadedVideos.length > 0) {
211
- const attachmentItems = [...uploadedImages.map(img => ({
212
- ...img,
213
- type: 'image'
214
- })),
215
- // Videos from gallery picker with auto-generated thumbnails
216
- ...uploadedVideosFromGallery.map((vid, vidIdx) => {
217
- // ✅ Use same key as storage: uploadedUrl or video-${idx}
218
- const videoId = vid.uploadedUrl || `video-${vidIdx}`;
219
- const thumbnail = galleryVideoThumbnails[videoId];
220
- return {
221
- type: 'video',
222
- video: vid.image,
223
- uploadProgress: vid.uploadProgress,
224
- error: vid.error,
225
- isUploading: vid.isUploading,
226
- uploadedUrl: vid.uploadedUrl,
227
- thumbnailUrl: thumbnail?.url,
228
- thumbnailSize: thumbnail?.size
229
- };
230
- })];
231
- console.log('[ChatComposer] Sending attachments...', {
232
- imagesCount: uploadedImages.length,
233
- videosCount: uploadedVideosFromGallery.length,
234
- hasTextMessage: !!textMessage
235
- });
236
- const success = await sendAttachments(attachmentItems, undefined, onMessageSent);
237
- console.log('[ChatComposer] Attachments send result:', {
238
- success
239
- });
240
- if (success) {
241
- clearAllImages();
242
- console.log('[ChatComposer] Images cleared after successful send');
243
- }
244
- }
245
-
246
- // Send each file as its own individual message
247
- const uploadedFiles = selectedFiles.filter(f => f.uploadedUrl && !f.error);
248
- if (uploadedFiles.length > 0) {
249
- console.log('[ChatComposer] Sending files individually:', {
250
- count: uploadedFiles.length
251
- });
252
- for (const file of uploadedFiles) {
253
- await sendAttachments([{
254
- type: 'file',
255
- file: {
256
- path: file.uri,
257
- filename: file.name,
258
- size: file.size
259
- },
260
- uploadProgress: 100,
261
- error: null,
262
- isUploading: false,
263
- uploadedUrl: file.uploadedUrl
264
- }], undefined, onMessageSent);
265
- }
266
- clearAllFiles?.();
267
- }
268
-
269
- // Send text last
270
- if (textMessage && onSendText) {
271
- console.log('[ChatComposer] Sending text message after attachments', {
272
- hasPreview: !!urlMetadata,
273
- previewUrl: urlMetadata?.url
274
- });
275
- onSendText(textMessage, urlMetadata);
276
- return;
277
- }
278
- const hasAnySent = uploadedImages.length > 0 || allUploadedVideos.length > 0 || uploadedFiles.length > 0;
279
- if (!hasAnySent) {
280
- onSend?.();
281
- }
282
- return;
283
- }, [selectedImages, selectedFiles, sendAttachments, clearAllImages, clearAllFiles, onSend, onMessageSent, textMessage, urlMetadata, onSendText]);
284
- return {
285
- handleSend
286
- };
287
- };
288
- //# sourceMappingURL=useAttachmentSendHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useCallback","RNFS","isVideoFromPicker","VideoThumbnailUtil","ImageUploadAPI","UIUtils","useAttachmentSendHandler","selectedImages","selectedFiles","sendAttachments","clearAllImages","clearAllFiles","onSend","onMessageSent","textMessage","urlMetadata","onSendText","handleSend","console","log","selectedImagesCount","length","selectedImagesData","map","img","filename","image","isUploading","uploadedUrl","uploadProgress","actualImages","filter","videosFromGallery","actualImagesCount","videosFromGalleryCount","videosFromGalleryList","v","uploadedImages","uploadedVideosFromGallery","vid","galleryVideoThumbnails","failedVideos","idx","vidItem","videoId","cachedVideoPath","originalVideoPath","path","videoDuration","duration","videoMime","mime","index","warn","ext","split","pop","cachedFileName","Date","now","Math","random","toString","slice","DocumentDirectoryPath","from","to","copyFile","timeMs","min","max","floor","quality","videoPath","thumbnail","generateThumbnail","time","cacheId","Error","width","height","baseName","uploadedThumbnail","uploadImageFile","size","progress","videoIndex","percentage","url","error","errorMsg","message","String","push","unlink","err","toast","open","title","join","theme","allUploadedVideos","forEach","vidIdx","thumbnailUrl","videoUrl","attachmentItems","type","video","thumbnailSize","imagesCount","videosCount","hasTextMessage","success","undefined","uploadedFiles","f","count","file","uri","name","hasPreview","previewUrl","hasAnySent"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/hooks/useAttachmentSendHandler.ts"],"mappings":"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","ignoreList":[]}
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- import { MessageStatus, MessageType } from '@droppii/openim-rn-client-sdk';
4
- import { resolveChatMessageType } from "./resolveMessageType.js";
5
- const SYSTEM_MESSAGE_TYPES = new Set([MessageType.FriendAdded, MessageType.OANotification, MessageType.GroupCreated, MessageType.GroupInfoUpdated, MessageType.MemberQuit, MessageType.GroupOwnerTransferred, MessageType.MemberKicked, MessageType.MemberInvited, MessageType.MemberEnter, MessageType.GroupDismissed, MessageType.GroupMemberMuted, MessageType.GroupMemberCancelMuted, MessageType.GroupMuted, MessageType.GroupCancelMuted, MessageType.GroupAnnouncementUpdated, MessageType.GroupNameUpdated, MessageType.RevokeMessage]);
6
- const getMessageText = message => {
7
- switch (message.contentType) {
8
- case MessageType.TextMessage:
9
- return message.textElem?.content ?? message.content;
10
- case MessageType.AtTextMessage:
11
- return message.atTextElem?.text ?? message.content;
12
- case MessageType.QuoteMessage:
13
- return message.quoteElem?.text ?? message.content;
14
- case MessageType.PictureMessage:
15
- return '';
16
- case MessageType.VoiceMessage:
17
- return message.soundElem?.sourceUrl ? '' : '[Tin nhắn thoại]';
18
- case MessageType.VideoMessage:
19
- return message.videoElem?.videoUrl ? '' : '[Video]';
20
- case MessageType.FileMessage:
21
- return message.fileElem?.fileName ?? message.content;
22
- case MessageType.CardMessage:
23
- return message.cardElem?.nickname ?? message.content;
24
- case MessageType.LocationMessage:
25
- return message.locationElem?.description ?? message.content;
26
- case MessageType.CustomMessage:
27
- return message.customElem?.description ?? message.content;
28
- case MessageType.FaceMessage:
29
- return '[Sticker]';
30
- default:
31
- if (message.notificationElem?.detail) {
32
- return message.notificationElem.detail;
33
- }
34
- return message.content || '';
35
- }
36
- };
37
- const mapMessageStatus = message => {
38
- switch (message.status) {
39
- case MessageStatus.Sending:
40
- return {
41
- pending: true
42
- };
43
- case MessageStatus.Succeed:
44
- return {
45
- sent: true,
46
- received: message.isRead
47
- };
48
- case MessageStatus.Failed:
49
- return {
50
- pending: true
51
- };
52
- default:
53
- return {};
54
- }
55
- };
56
- export const mapOpenIMMessageToGiftedChat = message => {
57
- const gifted = {
58
- _id: message.clientMsgID || message.serverMsgID,
59
- text: getMessageText(message),
60
- createdAt: new Date(message.sendTime || message.createTime),
61
- user: {
62
- _id: String(message.sendID),
63
- name: message.senderNickname,
64
- avatar: message.senderFaceUrl || undefined
65
- },
66
- openIMMessage: message,
67
- messageType: resolveChatMessageType(message),
68
- ...mapMessageStatus(message)
69
- };
70
- if (SYSTEM_MESSAGE_TYPES.has(message.contentType)) {
71
- gifted.system = true;
72
- }
73
- if (message.contentType === MessageType.PictureMessage) {
74
- const imageUrl = message.pictureElem?.snapshotPicture?.url || message.pictureElem?.bigPicture?.url || message.pictureElem?.sourcePicture?.url;
75
- if (imageUrl) {
76
- gifted.image = imageUrl;
77
- }
78
- }
79
- if (message.contentType === MessageType.VideoMessage && message.videoElem?.videoUrl) {
80
- gifted.video = message.videoElem.videoUrl;
81
- }
82
- if (message.contentType === MessageType.VoiceMessage && message.soundElem?.sourceUrl) {
83
- gifted.audio = message.soundElem.sourceUrl;
84
- }
85
- return gifted;
86
- };
87
- export const mapOpenIMMessagesToGiftedChat = messages => {
88
- return messages.map(mapOpenIMMessageToGiftedChat).sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
89
- };
90
- //# sourceMappingURL=giftedChatMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["MessageStatus","MessageType","resolveChatMessageType","SYSTEM_MESSAGE_TYPES","Set","FriendAdded","OANotification","GroupCreated","GroupInfoUpdated","MemberQuit","GroupOwnerTransferred","MemberKicked","MemberInvited","MemberEnter","GroupDismissed","GroupMemberMuted","GroupMemberCancelMuted","GroupMuted","GroupCancelMuted","GroupAnnouncementUpdated","GroupNameUpdated","RevokeMessage","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","mapMessageStatus","status","Sending","pending","Succeed","sent","received","isRead","Failed","mapOpenIMMessageToGiftedChat","gifted","_id","clientMsgID","serverMsgID","createdAt","Date","sendTime","createTime","user","String","sendID","name","senderNickname","avatar","senderFaceUrl","undefined","openIMMessage","messageType","has","system","imageUrl","pictureElem","snapshotPicture","url","bigPicture","sourcePicture","image","video","audio","mapOpenIMMessagesToGiftedChat","messages","map","sort","a","b","getTime"],"sourceRoot":"../../../src","sources":["utils/giftedChatMessage.ts"],"mappings":"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","ignoreList":[]}
@@ -1,26 +0,0 @@
1
- import type { DMessageItem } from '../../../types/chat';
2
- import type { FileWithUploadStatus } from '../../../hooks/useFileAttachment';
3
- interface AttachmentItem {
4
- image: any;
5
- uploadedUrl?: string;
6
- uploadProgress?: number;
7
- error?: any;
8
- isUploading?: boolean;
9
- }
10
- interface UseAttachmentSendHandlerProps {
11
- selectedImages: AttachmentItem[];
12
- selectedFiles: FileWithUploadStatus[];
13
- sendAttachments: (items: any[], _: any, onMessageSent?: (message: DMessageItem) => void) => Promise<boolean>;
14
- clearAllImages: () => void;
15
- clearAllFiles?: () => void;
16
- onSend?: () => void;
17
- onMessageSent?: (message: DMessageItem) => void;
18
- textMessage?: string;
19
- urlMetadata?: any;
20
- onSendText?: (text: string, urlMetadata?: any) => void;
21
- }
22
- export declare const useAttachmentSendHandler: ({ selectedImages, selectedFiles, sendAttachments, clearAllImages, clearAllFiles, onSend, onMessageSent, textMessage, urlMetadata, onSendText, }: UseAttachmentSendHandlerProps) => {
23
- handleSend: () => Promise<void>;
24
- };
25
- export {};
26
- //# sourceMappingURL=useAttachmentSendHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAttachmentSendHandler.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/hooks/useAttachmentSendHandler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,UAAU,cAAc;IACtB,KAAK,EAAE,GAAG,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,6BAA6B;IACrC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,eAAe,EAAE,CACf,KAAK,EAAE,GAAG,EAAE,EACZ,CAAC,EAAE,GAAG,EACN,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,KAC5C,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACxD;AAED,eAAO,MAAM,wBAAwB,GAAI,iJAWtC,6BAA6B;;CAoV/B,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { IMessage } from 'react-native-gifted-chat';
2
- import type { DChatMessageType } from '../types/message';
3
- import type { DMessageItem } from '../types/chat';
4
- export type DGiftedChatMessage = IMessage & {
5
- openIMMessage: DMessageItem;
6
- messageType: DChatMessageType;
7
- };
8
- export declare const mapOpenIMMessageToGiftedChat: (message: DMessageItem) => DGiftedChatMessage;
9
- export declare const mapOpenIMMessagesToGiftedChat: (messages: DMessageItem[]) => DGiftedChatMessage[];
10
- //# sourceMappingURL=giftedChatMessage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"giftedChatMessage.d.ts","sourceRoot":"","sources":["../../../../src/utils/giftedChatMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG;IAC1C,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;CAC/B,CAAC;AAqEF,eAAO,MAAM,4BAA4B,GACvC,SAAS,YAAY,KACpB,kBA6CF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,UAAU,YAAY,EAAE,KACvB,kBAAkB,EAOpB,CAAC"}