@droppii-org/chat-mobile 0.2.16 → 0.2.18
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/assets/images/icon_excel.png +0 -0
- package/lib/module/assets/images/icon_img.png +0 -0
- package/lib/module/assets/images/icon_pdf.png +0 -0
- package/lib/module/assets/images/icon_txt.png +0 -0
- package/lib/module/assets/images/icon_word.png +0 -0
- package/lib/module/assets/images/index.js +5 -0
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/components/AttachmentPreview/FilePreview.js +107 -0
- package/lib/module/components/AttachmentPreview/FilePreview.js.map +1 -0
- package/lib/module/components/AttachmentPreview/MediaPreview.js +212 -0
- package/lib/module/components/AttachmentPreview/MediaPreview.js.map +1 -0
- package/lib/module/components/AttachmentPreview/index.js +49 -0
- package/lib/module/components/AttachmentPreview/index.js.map +1 -0
- package/lib/module/components/MergedImageGrid.js +28 -18
- package/lib/module/components/MergedImageGrid.js.map +1 -1
- package/lib/module/components/messages/fileMessage/index.js +122 -12
- package/lib/module/components/messages/fileMessage/index.js.map +1 -1
- package/lib/module/components/messages/mergedMessage/index.js +4 -7
- package/lib/module/components/messages/mergedMessage/index.js.map +1 -1
- package/lib/module/hooks/useFileAttachment.js +116 -0
- package/lib/module/hooks/useFileAttachment.js.map +1 -0
- package/lib/module/hooks/useFileDownload.js +175 -0
- package/lib/module/hooks/useFileDownload.js.map +1 -0
- package/lib/module/hooks/useImageAttachment.js +16 -8
- package/lib/module/hooks/useImageAttachment.js.map +1 -1
- package/lib/module/hooks/useVideoAttachment.js +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/MediaView/VideoPlayer.js +1 -0
- package/lib/module/screens/MediaView/VideoPlayer.js.map +1 -1
- package/lib/module/screens/MediaView/index.js +7 -9
- package/lib/module/screens/MediaView/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +44 -36
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +11 -2
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useAttachmentMapping.js +51 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentMapping.js.map +1 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +39 -13
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +6 -6
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/index.js +1 -1
- package/lib/module/services/attachmentHandlers/index.js.map +1 -1
- package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +1 -1
- package/lib/module/translation/resources/i18n.js +10 -0
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/utils/device.js +32 -0
- package/lib/module/utils/device.js.map +1 -1
- package/lib/module/utils/imageUtils.js +44 -28
- package/lib/module/utils/imageUtils.js.map +1 -1
- package/lib/module/utils/videoThumbnail.js +76 -3
- package/lib/module/utils/videoThumbnail.js.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +5 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
- package/lib/typescript/src/components/AttachmentPreview/FilePreview.d.ts +6 -0
- package/lib/typescript/src/components/AttachmentPreview/FilePreview.d.ts.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview/MediaPreview.d.ts +9 -0
- package/lib/typescript/src/components/AttachmentPreview/MediaPreview.d.ts.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview/index.d.ts +9 -0
- package/lib/typescript/src/components/AttachmentPreview/index.d.ts.map +1 -0
- package/lib/typescript/src/components/MergedImageGrid.d.ts +2 -2
- package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFileAttachment.d.ts +20 -0
- package/lib/typescript/src/hooks/useFileAttachment.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useFileDownload.d.ts +15 -0
- package/lib/typescript/src/hooks/useFileDownload.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useImageAttachment.d.ts +1 -2
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/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/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentMapping.d.ts +10 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentMapping.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +4 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts +2 -2
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts +1 -1
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/attachment.d.ts +22 -1
- package/lib/typescript/src/types/attachment.d.ts.map +1 -1
- package/lib/typescript/src/utils/device.d.ts +7 -0
- package/lib/typescript/src/utils/device.d.ts.map +1 -1
- package/lib/typescript/src/utils/imageUtils.d.ts +1 -0
- package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
- package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/assets/images/icon_excel.png +0 -0
- package/src/assets/images/icon_img.png +0 -0
- package/src/assets/images/icon_pdf.png +0 -0
- package/src/assets/images/icon_txt.png +0 -0
- package/src/assets/images/icon_word.png +0 -0
- package/src/assets/images/index.ts +5 -0
- package/src/components/AttachmentPreview/FilePreview.tsx +137 -0
- package/src/components/AttachmentPreview/MediaPreview.tsx +238 -0
- package/src/components/AttachmentPreview/index.tsx +68 -0
- package/src/components/MergedImageGrid.tsx +36 -23
- package/src/components/messages/fileMessage/index.tsx +156 -13
- package/src/components/messages/mergedMessage/index.tsx +5 -7
- package/src/hooks/useFileAttachment.ts +163 -0
- package/src/hooks/useFileDownload.ts +200 -0
- package/src/hooks/useImageAttachment.ts +23 -13
- package/src/hooks/useVideoAttachment.ts +1 -1
- package/src/screens/MediaView/VideoPlayer.tsx +1 -0
- package/src/screens/MediaView/index.tsx +7 -6
- package/src/screens/chat-detail/ChatComposer.tsx +61 -30
- package/src/screens/chat-detail/ChatListLegend.tsx +9 -2
- package/src/screens/chat-detail/hooks/useAttachmentMapping.ts +58 -0
- package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +50 -11
- package/src/services/attachmentHandlers/fileAttachmentHandler.ts +8 -7
- package/src/services/attachmentHandlers/index.ts +4 -1
- package/src/services/attachmentHandlers/videoAttachmentHandler.ts +1 -1
- package/src/translation/resources/i18n.ts +10 -0
- package/src/types/attachment.ts +23 -1
- package/src/utils/device.ts +58 -0
- package/src/utils/imageUtils.ts +50 -28
- package/src/utils/videoThumbnail.ts +77 -3
- package/lib/module/components/AttachmentPreview.js +0 -250
- package/lib/module/components/AttachmentPreview.js.map +0 -1
- package/lib/typescript/src/components/AttachmentPreview.d.ts +0 -28
- package/lib/typescript/src/components/AttachmentPreview.d.ts.map +0 -1
- package/src/components/AttachmentPreview.tsx +0 -304
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","RNFS","isVideoFromPicker","VideoThumbnailUtil","ImageUploadAPI","UIUtils","useAttachmentSendHandler","selectedImages","sendAttachments","clearAllImages","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","hasPreview","previewUrl"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/hooks/useAttachmentSendHandler.ts"],"mappings":"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","ignoreList":[]}
|
|
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,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
const MB = 1024 * 1024;
|
|
4
|
+
export const MAX_FILE_SIZE = 50 * MB;
|
|
3
5
|
export class FileAttachmentHandler {
|
|
4
|
-
static MAX_FILE_SIZE = 200 * 1024 * 1024; // 200MB
|
|
5
|
-
|
|
6
6
|
validate(attachment) {
|
|
7
7
|
if (attachment.type !== 'file') {
|
|
8
8
|
return {
|
|
@@ -25,10 +25,10 @@ export class FileAttachmentHandler {
|
|
|
25
25
|
reason: 'File size is required'
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
|
-
if (sourceFile.size >
|
|
28
|
+
if (sourceFile.size > MAX_FILE_SIZE) {
|
|
29
29
|
return {
|
|
30
30
|
valid: false,
|
|
31
|
-
reason: `File size exceeds maximum (${
|
|
31
|
+
reason: `File size exceeds maximum (${MAX_FILE_SIZE / 1024 / 1024}MB)`
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
return {
|
|
@@ -45,14 +45,14 @@ export class FileAttachmentHandler {
|
|
|
45
45
|
fileName: sourceFile.filename,
|
|
46
46
|
fileSize: sourceFile.size,
|
|
47
47
|
fileType: sourceFile.mimeType,
|
|
48
|
-
|
|
48
|
+
sourceUrl: uploadedUrl
|
|
49
49
|
};
|
|
50
50
|
console.warn('[FileAttachmentHandler] Built payload', {
|
|
51
51
|
uuid: fileElem.uuid,
|
|
52
52
|
fileName: fileElem.fileName,
|
|
53
53
|
fileSize: fileElem.fileSize,
|
|
54
54
|
fileType: fileElem.fileType,
|
|
55
|
-
|
|
55
|
+
sourceUrl: uploadedUrl.substring(0, 50) + '...'
|
|
56
56
|
});
|
|
57
57
|
return fileElem;
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["MB","MAX_FILE_SIZE","FileAttachmentHandler","validate","attachment","type","valid","reason","sourceFile","filename","size","buildPayload","uploadedUrl","file","fileElem","uuid","id","fileName","fileSize","fileType","mimeType","sourceUrl","console","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/fileAttachmentHandler.ts"],"mappings":";;AAWA,MAAMA,EAAE,GAAG,IAAI,GAAG,IAAI;AACtB,OAAO,MAAMC,aAAa,GAAG,EAAE,GAAGD,EAAE;AAEpC,OAAO,MAAME,qBAAqB,CAA+B;EAC/DC,QAAQA,CACNC,UAAsB,EAC8B;IACpD,IAAIA,UAAU,CAACC,IAAI,KAAK,MAAM,EAAE;MAC9B,OAAO;QACLC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,MAAM;MAAEC;IAAW,CAAC,GAAGJ,UAAU;IAEjC,IAAI,CAACI,UAAU,CAACC,QAAQ,EAAE;MACxB,OAAO;QACLH,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAI,CAACC,UAAU,CAACE,IAAI,EAAE;MACpB,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAIC,UAAU,CAACE,IAAI,GAAGT,aAAa,EAAE;MACnC,OAAO;QACLK,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,8BAA8BN,aAAa,GAAG,IAAI,GAAG,IAAI;MACnE,CAAC;IACH;IAEA,OAAO;MAAEK,KAAK,EAAE;IAAK,CAAC;EACxB;EAEA,MAAMK,YAAYA,CAChBP,UAAsB,EACtBQ,WAAmB,EACA;IACnB,MAAMC,IAAI,GAAGT,UAA4B;IACzC,MAAM;MAAEI;IAAW,CAAC,GAAGK,IAAI;IAE3B,MAAMC,QAAkB,GAAG;MACzBC,IAAI,EAAEX,UAAU,CAACY,EAAE;MACnBC,QAAQ,EAAET,UAAU,CAACC,QAAQ;MAC7BS,QAAQ,EAAEV,UAAU,CAACE,IAAI;MACzBS,QAAQ,EAAEX,UAAU,CAACY,QAAQ;MAC7BC,SAAS,EAAET;IACb,CAAC;IAEDU,OAAO,CAACC,IAAI,CAAC,uCAAuC,EAAE;MACpDR,IAAI,EAAED,QAAQ,CAACC,IAAI;MACnBE,QAAQ,EAAEH,QAAQ,CAACG,QAAQ;MAC3BC,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;MAC3BC,QAAQ,EAAEL,QAAQ,CAACK,QAAQ;MAC3BE,SAAS,EAAET,WAAW,CAACY,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;IAC5C,CAAC,CAAC;IAEF,OAAOV,QAAQ;EACjB;AACF;AAEA,eAAe,IAAIZ,qBAAqB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -8,5 +8,5 @@ export function initializeAttachmentHandlers() {
|
|
|
8
8
|
}
|
|
9
9
|
export { ImageAttachmentHandler } from "./imageAttachmentHandler.js";
|
|
10
10
|
export { default as VideoAttachmentHandler } from "./videoAttachmentHandler.js";
|
|
11
|
-
export { default as FileAttachmentHandler } from "./fileAttachmentHandler.js";
|
|
11
|
+
export { default as FileAttachmentHandler, MAX_FILE_SIZE } from "./fileAttachmentHandler.js";
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["initializeAttachmentHandlers","ImageAttachmentHandler","default","VideoAttachmentHandler","FileAttachmentHandler"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/index.ts"],"mappings":";;AAAA;;AAEA;AACA,OAAO,SAASA,4BAA4BA,CAAA,EAAS;EACnD;AAAA;AAGF,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,OAAO,IAAIC,sBAAsB,QAAQ,6BAA0B;AAC5E,
|
|
1
|
+
{"version":3,"names":["initializeAttachmentHandlers","ImageAttachmentHandler","default","VideoAttachmentHandler","FileAttachmentHandler","MAX_FILE_SIZE"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/index.ts"],"mappings":";;AAAA;;AAEA;AACA,OAAO,SAASA,4BAA4BA,CAAA,EAAS;EACnD;AAAA;AAGF,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,OAAO,IAAIC,sBAAsB,QAAQ,6BAA0B;AAC5E,SACED,OAAO,IAAIE,qBAAqB,EAChCC,aAAa,QACR,4BAAyB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export class VideoAttachmentHandler {
|
|
4
|
-
static MAX_VIDEO_SIZE =
|
|
4
|
+
static MAX_VIDEO_SIZE = 200 * 1024 * 1024; // 200MB
|
|
5
5
|
static SUPPORTED_TYPES = ['video/mp4', 'video/quicktime'];
|
|
6
6
|
validate(attachment) {
|
|
7
7
|
if (attachment.type !== 'video') {
|
|
@@ -3,8 +3,18 @@
|
|
|
3
3
|
const i18nKey = {
|
|
4
4
|
'thread_card_bot_crm_name': 'Droppii Hỗ Trợ',
|
|
5
5
|
'thread_card_fallback_name': 'Người dùng',
|
|
6
|
+
'chat:file_too_large': 'Tệp quá lớn. Tối đa 10MB',
|
|
7
|
+
'chat:file_max_count': 'Chỉ có thể đính kèm tối đa 3 tệp',
|
|
8
|
+
'chat:file_pick_failed': 'Không thể chọn tệp',
|
|
9
|
+
'chat:file_upload_failed': 'Lỗi tải tệp lên',
|
|
10
|
+
'chat:file_preview_unsupported': 'Không thể xem trước tệp này',
|
|
11
|
+
'chat:file_downloading': 'Đang tải {{received}}/{{total}} MB',
|
|
12
|
+
'chat:file_downloaded_success': 'Đã tải thành công {{fileName}}',
|
|
13
|
+
'chat:file_download_failed': 'Tải tệp thất bại',
|
|
14
|
+
'chat:file_open_failed': 'Không thể mở tệp này',
|
|
6
15
|
'chat:image_preview': 'Xem trước ảnh',
|
|
7
16
|
'chat:image_too_large': 'Ảnh quá lớn. Tối đa 5MB',
|
|
17
|
+
'chat:video_too_large': 'Video quá lớn. Tối đa 200MB',
|
|
8
18
|
'chat:image_sent': 'Đã gửi ảnh',
|
|
9
19
|
'chat:image_upload_failed': 'Lỗi tải ảnh',
|
|
10
20
|
'chat:failed_to_send_message': 'Không thể gửi tin nhắn. Thử lại?',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["i18nKey","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtC,0BAA0B,EAAE,gBAAgB;EAC5C,2BAA2B,EAAE,YAAY;EACzC,oBAAoB,EAAE,eAAe;EACrC,sBAAsB,EAAE,yBAAyB;EACjD,iBAAiB,EAAE,YAAY;EAC/B,0BAA0B,EAAE,aAAa;EACzC,6BAA6B,EAAE,kCAAkC;EACjE,eAAe,EAAE,SAAS;EAC1B,gBAAgB,EAAE,YAAY;EAC9B,iBAAiB,EAAE,SAAS;EAC5B,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE,SAAS;EACvB,2BAA2B,EAAE,6BAA6B;EAC1D,mBAAmB,EAAE,kBAAkB;EACvC,yBAAyB,EAAE,kBAAkB;EAC7C,qBAAqB,EAAE,0BAA0B;EACjD,gBAAgB,EAAE,YAAY;EAC9B,gBAAgB,EAAE,kBAAkB;EACpC,gBAAgB,EAAE,SAAS;EAC3B,eAAe,EAAE,iBAAiB;EAClC,eAAe,EAAE,YAAY;EAC7B,iBAAiB,EAAE,qBAAqB;EACxC,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE;AACb,CAAC;AAED,eAAe;EACbC,EAAE,EAAED;AACN,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["i18nKey","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtC,0BAA0B,EAAE,gBAAgB;EAC5C,2BAA2B,EAAE,YAAY;EACzC,qBAAqB,EAAE,0BAA0B;EACjD,qBAAqB,EAAE,kCAAkC;EACzD,uBAAuB,EAAE,oBAAoB;EAC7C,yBAAyB,EAAE,iBAAiB;EAC5C,+BAA+B,EAAE,6BAA6B;EAC9D,uBAAuB,EAAE,oCAAoC;EAC7D,8BAA8B,EAAE,gCAAgC;EAChE,2BAA2B,EAAE,kBAAkB;EAC/C,uBAAuB,EAAE,sBAAsB;EAC/C,oBAAoB,EAAE,eAAe;EACrC,sBAAsB,EAAE,yBAAyB;EACjD,sBAAsB,EAAE,6BAA6B;EACrD,iBAAiB,EAAE,YAAY;EAC/B,0BAA0B,EAAE,aAAa;EACzC,6BAA6B,EAAE,kCAAkC;EACjE,eAAe,EAAE,SAAS;EAC1B,gBAAgB,EAAE,YAAY;EAC9B,iBAAiB,EAAE,SAAS;EAC5B,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE,SAAS;EACvB,2BAA2B,EAAE,6BAA6B;EAC1D,mBAAmB,EAAE,kBAAkB;EACvC,yBAAyB,EAAE,kBAAkB;EAC7C,qBAAqB,EAAE,0BAA0B;EACjD,gBAAgB,EAAE,YAAY;EAC9B,gBAAgB,EAAE,kBAAkB;EACpC,gBAAgB,EAAE,SAAS;EAC3B,eAAe,EAAE,iBAAiB;EAClC,eAAe,EAAE,YAAY;EAC7B,iBAAiB,EAAE,qBAAqB;EACxC,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE;AACb,CAAC;AAED,eAAe;EACbC,EAAE,EAAED;AACN,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import ImagePicker from 'react-native-image-crop-picker';
|
|
4
|
+
import { pick as pickDocument, types as documentTypes, isErrorWithCode, errorCodes, keepLocalCopy } from '@react-native-documents/picker';
|
|
4
5
|
const DeviceUtils = {
|
|
5
6
|
openImagePicker: async (multiple = false) => {
|
|
6
7
|
try {
|
|
@@ -59,6 +60,37 @@ const DeviceUtils = {
|
|
|
59
60
|
console.error('[Video Picker] Error:', error);
|
|
60
61
|
throw error;
|
|
61
62
|
}
|
|
63
|
+
},
|
|
64
|
+
openFilePicker: async (multiple = false) => {
|
|
65
|
+
try {
|
|
66
|
+
const results = await pickDocument({
|
|
67
|
+
allowMultiSelection: multiple,
|
|
68
|
+
type: [documentTypes.allFiles],
|
|
69
|
+
mode: 'import'
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Copy picked files to app's document directory so uploads can access them
|
|
73
|
+
const copies = await keepLocalCopy({
|
|
74
|
+
files: results.map(r => ({
|
|
75
|
+
uri: r.uri,
|
|
76
|
+
fileName: r.name ?? 'file'
|
|
77
|
+
})),
|
|
78
|
+
destination: 'documentDirectory'
|
|
79
|
+
});
|
|
80
|
+
const files = results.map((r, i) => ({
|
|
81
|
+
uri: decodeURIComponent(copies[i]?.status === 'success' ? copies[i].localUri : r.uri),
|
|
82
|
+
name: r.name ?? 'file',
|
|
83
|
+
size: r.size ?? 0,
|
|
84
|
+
mimeType: r.type ?? 'application/octet-stream'
|
|
85
|
+
}));
|
|
86
|
+
return files;
|
|
87
|
+
} catch (error) {
|
|
88
|
+
if (isErrorWithCode(error) && error.code === errorCodes.OPERATION_CANCELED) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
console.error('[File Picker] Error:', error);
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
62
94
|
}
|
|
63
95
|
};
|
|
64
96
|
export default DeviceUtils;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ImagePicker","DeviceUtils","openImagePicker","multiple","result","openPicker","mediaType","compressImageQuality","forceJpg","images","Array","isArray","console","log","count","length","map","img","filename","size","width","height","error","code","openVideoPicker","videos","vid","duration"],"sourceRoot":"../../../src","sources":["utils/device.ts"],"mappings":";;AAAA,OAAOA,WAAW,MAAM,gCAAgC;
|
|
1
|
+
{"version":3,"names":["ImagePicker","pick","pickDocument","types","documentTypes","isErrorWithCode","errorCodes","keepLocalCopy","DeviceUtils","openImagePicker","multiple","result","openPicker","mediaType","compressImageQuality","forceJpg","images","Array","isArray","console","log","count","length","map","img","filename","size","width","height","error","code","openVideoPicker","videos","vid","duration","openFilePicker","results","allowMultiSelection","type","allFiles","mode","copies","files","r","uri","fileName","name","destination","i","decodeURIComponent","status","localUri","mimeType","OPERATION_CANCELED"],"sourceRoot":"../../../src","sources":["utils/device.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import Images from "../assets/images/index.js";
|
|
3
4
|
export const generateUUID = () => {
|
|
4
5
|
return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
5
6
|
};
|
|
@@ -15,38 +16,53 @@ export const isVideoFromPicker = pickedItem => {
|
|
|
15
16
|
if (!mime) return false;
|
|
16
17
|
return mime.startsWith('video/');
|
|
17
18
|
};
|
|
19
|
+
const mimeMap = {
|
|
20
|
+
jpg: 'image/jpeg',
|
|
21
|
+
jpeg: 'image/jpeg',
|
|
22
|
+
png: 'image/png',
|
|
23
|
+
webp: 'image/webp',
|
|
24
|
+
heic: 'image/heic',
|
|
25
|
+
heif: 'image/heif',
|
|
26
|
+
mp4: 'video/mp4',
|
|
27
|
+
mov: 'video/quicktime',
|
|
28
|
+
avi: 'video/x-msvideo',
|
|
29
|
+
mkv: 'video/x-matroska',
|
|
30
|
+
webm: 'video/webm',
|
|
31
|
+
m4v: 'video/mp4',
|
|
32
|
+
flv: 'video/x-flv',
|
|
33
|
+
wmv: 'video/x-ms-wmv',
|
|
34
|
+
mp3: 'audio/mpeg',
|
|
35
|
+
wav: 'audio/wav',
|
|
36
|
+
m4a: 'audio/mp4',
|
|
37
|
+
aac: 'audio/aac',
|
|
38
|
+
flac: 'audio/flac',
|
|
39
|
+
ogg: 'audio/ogg',
|
|
40
|
+
pdf: 'application/pdf',
|
|
41
|
+
doc: 'application/msword',
|
|
42
|
+
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
43
|
+
xls: 'application/vnd.ms-excel',
|
|
44
|
+
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
45
|
+
zip: 'application/zip'
|
|
46
|
+
};
|
|
18
47
|
export const getMimeType = fileName => {
|
|
19
48
|
const ext = fileName.split('.').pop()?.toLowerCase();
|
|
20
|
-
const mimeMap = {
|
|
21
|
-
jpg: 'image/jpeg',
|
|
22
|
-
jpeg: 'image/jpeg',
|
|
23
|
-
png: 'image/png',
|
|
24
|
-
webp: 'image/webp',
|
|
25
|
-
heic: 'image/heic',
|
|
26
|
-
heif: 'image/heif',
|
|
27
|
-
mp4: 'video/mp4',
|
|
28
|
-
mov: 'video/quicktime',
|
|
29
|
-
avi: 'video/x-msvideo',
|
|
30
|
-
mkv: 'video/x-matroska',
|
|
31
|
-
webm: 'video/webm',
|
|
32
|
-
m4v: 'video/mp4',
|
|
33
|
-
flv: 'video/x-flv',
|
|
34
|
-
wmv: 'video/x-ms-wmv',
|
|
35
|
-
mp3: 'audio/mpeg',
|
|
36
|
-
wav: 'audio/wav',
|
|
37
|
-
m4a: 'audio/mp4',
|
|
38
|
-
aac: 'audio/aac',
|
|
39
|
-
flac: 'audio/flac',
|
|
40
|
-
ogg: 'audio/ogg',
|
|
41
|
-
pdf: 'application/pdf',
|
|
42
|
-
doc: 'application/msword',
|
|
43
|
-
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
44
|
-
xls: 'application/vnd.ms-excel',
|
|
45
|
-
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
46
|
-
zip: 'application/zip'
|
|
47
|
-
};
|
|
48
49
|
return mimeMap[ext || ''] || 'application/octet-stream';
|
|
49
50
|
};
|
|
51
|
+
export const getFileIcon = mimeType => {
|
|
52
|
+
if (mimeType?.startsWith('image/')) return Images.ICON_IMG;
|
|
53
|
+
switch (mimeType) {
|
|
54
|
+
case mimeMap.pdf:
|
|
55
|
+
return Images.ICON_PDF;
|
|
56
|
+
case mimeMap.doc:
|
|
57
|
+
case mimeMap.docx:
|
|
58
|
+
return Images.ICON_WORD;
|
|
59
|
+
case mimeMap.xls:
|
|
60
|
+
case mimeMap.xlsx:
|
|
61
|
+
return Images.ICON_EXCEL;
|
|
62
|
+
default:
|
|
63
|
+
return Images.ICON_TXT;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
50
66
|
export const formatFileSize = bytes => {
|
|
51
67
|
if (bytes === 0) return '0 Bytes';
|
|
52
68
|
const k = 1024;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateUUID","Date","now","Math","random","toString","slice","isVideoFile","filename","mimeType","getMimeType","startsWith","isVideoFromPicker","pickedItem","mime","
|
|
1
|
+
{"version":3,"names":["Images","generateUUID","Date","now","Math","random","toString","slice","isVideoFile","filename","mimeType","getMimeType","startsWith","isVideoFromPicker","pickedItem","mime","mimeMap","jpg","jpeg","png","webp","heic","heif","mp4","mov","avi","mkv","webm","m4v","flv","wmv","mp3","wav","m4a","aac","flac","ogg","pdf","doc","docx","xls","xlsx","zip","fileName","ext","split","pop","toLowerCase","getFileIcon","ICON_IMG","ICON_PDF","ICON_WORD","ICON_EXCEL","ICON_TXT","formatFileSize","bytes","k","sizes","i","floor","log","round","pow","validateImageFile","file","MAX_SIZE","size","validMimes","includes","getImageUploadEndpoint","baseUrl"],"sourceRoot":"../../../src","sources":["utils/imageUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { Platform } from 'react-native';
|
|
3
4
|
import RNFS from 'react-native-fs';
|
|
4
5
|
import { createThumbnail } from 'react-native-create-thumbnail';
|
|
6
|
+
/**
|
|
7
|
+
* Routes the video source so react-native-create-thumbnail picks the correct
|
|
8
|
+
* native MediaMetadataRetriever.setDataSource overload.
|
|
9
|
+
*
|
|
10
|
+
* Root cause of the Android crash: CreateThumbnailModule.getBitmapAtTime branches
|
|
11
|
+
* on the URL scheme —
|
|
12
|
+
* - "file://..." -> setDataSource(String) ✅ works for local files
|
|
13
|
+
* - "content://" -> setDataSource(Context, Uri)
|
|
14
|
+
* - otherwise -> setDataSource(String, Map headers) ❌ this overload is for
|
|
15
|
+
* REMOTE URIs; a bare local path makes it throw an uncaught
|
|
16
|
+
* RuntimeException (status 0xFFFFFFEA / EINVAL) → app crash.
|
|
17
|
+
* The app strips "file://" before calling, so local videos fall into the broken
|
|
18
|
+
* branch. The fix is to KEEP the file:// scheme so the working overload is used.
|
|
19
|
+
*
|
|
20
|
+
* For Android photo-picker synthetic paths we additionally copy the file into the
|
|
21
|
+
* app cache first (a clean, app-private file the retriever can always open) and
|
|
22
|
+
* still hand it back with a file:// prefix. Returns the path to pass to
|
|
23
|
+
* createThumbnail plus a raw cleanup path for any temp copy.
|
|
24
|
+
*/
|
|
25
|
+
const ensureRetrievableVideoPath = async videoPath => {
|
|
26
|
+
// iOS (and any non-Android platform) is left completely untouched.
|
|
27
|
+
if (Platform.OS !== 'android') {
|
|
28
|
+
return {
|
|
29
|
+
path: videoPath,
|
|
30
|
+
cleanupPath: null
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// content:// is handled by a dedicated native branch — pass through unchanged.
|
|
35
|
+
if (videoPath.startsWith('content://')) {
|
|
36
|
+
return {
|
|
37
|
+
path: videoPath,
|
|
38
|
+
cleanupPath: null
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const rawPath = videoPath.startsWith('file://') ? videoPath.replace('file://', '') : videoPath;
|
|
42
|
+
const isSynthetic = rawPath.includes('/.transforms/') || rawPath.includes('/synthetic/');
|
|
43
|
+
if (isSynthetic) {
|
|
44
|
+
const ext = (rawPath.split('.').pop() || 'mp4').split('?')[0];
|
|
45
|
+
const dest = `${RNFS.CachesDirectoryPath}/video-thumb-src-${Date.now()}-${Math.floor(Math.random() * 1e6)}.${ext}`;
|
|
46
|
+
console.log('[VideoThumbnail] Copying picker video to cache before thumbnail', {
|
|
47
|
+
from: rawPath,
|
|
48
|
+
to: dest
|
|
49
|
+
});
|
|
50
|
+
await RNFS.copyFile(rawPath, dest);
|
|
51
|
+
return {
|
|
52
|
+
path: `file://${dest}`,
|
|
53
|
+
cleanupPath: dest
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Any other local path: ensure the file:// scheme so the native module routes
|
|
58
|
+
// to setDataSource(String) instead of the broken (String, Map) overload.
|
|
59
|
+
return {
|
|
60
|
+
path: `file://${rawPath}`,
|
|
61
|
+
cleanupPath: null
|
|
62
|
+
};
|
|
63
|
+
};
|
|
5
64
|
export const VideoThumbnailUtil = {
|
|
6
65
|
generateThumbnail: async (videoPath, options = {}) => {
|
|
7
66
|
const {
|
|
@@ -10,19 +69,28 @@ export const VideoThumbnailUtil = {
|
|
|
10
69
|
cacheId
|
|
11
70
|
} = options; // time in milliseconds
|
|
12
71
|
|
|
72
|
+
let tempSourcePath = null;
|
|
13
73
|
try {
|
|
74
|
+
// Normalize the source so the native MediaMetadataRetriever can open it.
|
|
75
|
+
// Android picker paths crash the app otherwise (see ensureRetrievableVideoPath).
|
|
76
|
+
const {
|
|
77
|
+
path: retrievablePath,
|
|
78
|
+
cleanupPath
|
|
79
|
+
} = await ensureRetrievableVideoPath(videoPath);
|
|
80
|
+
tempSourcePath = cleanupPath;
|
|
81
|
+
|
|
14
82
|
// Generate unique cache name per video to avoid conflicts with concurrent generations
|
|
15
83
|
// Uses provided cacheId or generates one from videoPath filename
|
|
16
|
-
const fileName =
|
|
84
|
+
const fileName = retrievablePath.split('/').pop() || String(Date.now());
|
|
17
85
|
const cacheName = cacheId || `thumb-${fileName.replace(/[^a-zA-Z0-9-_]/g, '')}-${Math.abs(fileName.charCodeAt(0) + fileName.charCodeAt(fileName.length - 1))}`;
|
|
18
86
|
console.log('[VideoThumbnail] Generating thumbnail', {
|
|
19
|
-
videoPath,
|
|
87
|
+
videoPath: retrievablePath,
|
|
20
88
|
timeMs: time,
|
|
21
89
|
quality,
|
|
22
90
|
cacheName
|
|
23
91
|
});
|
|
24
92
|
const result = await createThumbnail({
|
|
25
|
-
url:
|
|
93
|
+
url: retrievablePath,
|
|
26
94
|
timeStamp: time,
|
|
27
95
|
format: 'png',
|
|
28
96
|
dirSize: 100,
|
|
@@ -42,6 +110,11 @@ export const VideoThumbnailUtil = {
|
|
|
42
110
|
} catch (error) {
|
|
43
111
|
console.error('[VideoThumbnail] Failed to generate thumbnail', error);
|
|
44
112
|
return null;
|
|
113
|
+
} finally {
|
|
114
|
+
// Remove the temporary video copy made for synthetic/content sources.
|
|
115
|
+
if (tempSourcePath) {
|
|
116
|
+
RNFS.unlink(tempSourcePath).catch(err => console.warn('[VideoThumbnail] Temp source cleanup failed:', err));
|
|
117
|
+
}
|
|
45
118
|
}
|
|
46
119
|
},
|
|
47
120
|
cleanupThumbnail: async thumbnailPath => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RNFS","createThumbnail","
|
|
1
|
+
{"version":3,"names":["Platform","RNFS","createThumbnail","ensureRetrievableVideoPath","videoPath","OS","path","cleanupPath","startsWith","rawPath","replace","isSynthetic","includes","ext","split","pop","dest","CachesDirectoryPath","Date","now","Math","floor","random","console","log","from","to","copyFile","VideoThumbnailUtil","generateThumbnail","options","time","quality","cacheId","tempSourcePath","retrievablePath","fileName","String","cacheName","abs","charCodeAt","length","timeMs","result","url","timeStamp","format","dirSize","width","height","error","unlink","catch","err","warn","cleanupThumbnail","thumbnailPath","batchGenerateThumbnails","videoPaths","results","thumbnail","push"],"sourceRoot":"../../../src","sources":["utils/videoThumbnail.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/assets/images/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/assets/images/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;;;;CAUX,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AttachmentItem } from '../../types/attachment';
|
|
2
|
+
export declare const FilePreview: import("react").MemoExoticComponent<({ file, onRemove, }: {
|
|
3
|
+
file: AttachmentItem;
|
|
4
|
+
onRemove: (id: string) => void;
|
|
5
|
+
}) => import("react").JSX.Element>;
|
|
6
|
+
//# sourceMappingURL=FilePreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilePreview.d.ts","sourceRoot":"","sources":["../../../../../src/components/AttachmentPreview/FilePreview.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,eAAO,MAAM,WAAW,4DAInB;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC,iCAsGF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AttachmentItem, AttachmentType } from '../../types/attachment';
|
|
2
|
+
type Props = {
|
|
3
|
+
item: AttachmentItem;
|
|
4
|
+
index: number;
|
|
5
|
+
onRemove(type: AttachmentType, index: number): void;
|
|
6
|
+
};
|
|
7
|
+
export declare const MediaPreview: import("react").MemoExoticComponent<({ item, index, onRemove }: Props) => import("react").JSX.Element>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=MediaPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaPreview.d.ts","sourceRoot":"","sources":["../../../../../src/components/AttachmentPreview/MediaPreview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7E,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACrD,CAAC;AA2BF,eAAO,MAAM,YAAY,kEAAoC,KAAK,iCAgHhE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AttachmentItem, AttachmentType } from '../../types/attachment';
|
|
2
|
+
interface AttachmentPreviewProps {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
attachments?: Array<AttachmentItem>;
|
|
5
|
+
onRemove: (type: AttachmentType, data: unknown) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const AttachmentPreview: import("react").MemoExoticComponent<({ visible, attachments, onRemove }: AttachmentPreviewProps) => import("react").JSX.Element>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/AttachmentPreview/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7E,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzD;AAED,eAAO,MAAM,iBAAiB,2EACS,sBAAsB,iCA4C5D,CAAC"}
|
|
@@ -8,8 +8,8 @@ interface MergedImageGridProps {
|
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Generic image grid for merged messages
|
|
11
|
-
* Layout:
|
|
12
|
-
* Shows "+N more" overlay on last cell if images exceed limit
|
|
11
|
+
* Layout: always a single horizontal row (1xN), N capped at maxDisplay (default 3)
|
|
12
|
+
* Shows "+N more" overlay on last cell if images exceed limit (e.g. 4 images → 3 + "+1")
|
|
13
13
|
*/
|
|
14
14
|
export declare const MergedImageGrid: import("react").MemoExoticComponent<({ images, maxDisplay, onMediaPress }: MergedImageGridProps) => import("react").JSX.Element>;
|
|
15
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MergedImageGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/MergedImageGrid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MergedImageGrid.d.ts","sourceRoot":"","sources":["../../../../src/components/MergedImageGrid.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,6EACiB,oBAAoB,iCAyLhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/fileMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/fileMessage/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AASvD,eAAO,MAAM,WAAW,gEACI,sBAAsB,iCAmIjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/mergedMessage/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,aAAa,8EACgB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/mergedMessage/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,aAAa,8EACgB,sBAAsB,iCAiC/D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface FileWithUploadStatus {
|
|
2
|
+
id: string;
|
|
3
|
+
uri: string;
|
|
4
|
+
name: string;
|
|
5
|
+
size: number;
|
|
6
|
+
mimeType: string;
|
|
7
|
+
uploadProgress: number;
|
|
8
|
+
error: string | null;
|
|
9
|
+
isUploading: boolean;
|
|
10
|
+
uploadedUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface UseFileAttachmentReturn {
|
|
13
|
+
selectedFiles: FileWithUploadStatus[];
|
|
14
|
+
isFilePreviewVisible: boolean;
|
|
15
|
+
handleFileAttach: () => Promise<void>;
|
|
16
|
+
handleFileRemove: (id: string) => void;
|
|
17
|
+
clearAllFiles: () => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const useFileAttachment: () => UseFileAttachmentReturn;
|
|
20
|
+
//# sourceMappingURL=useFileAttachment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileAttachment.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFileAttachment.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,QAAO,uBAqIpC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type DownloadStatus = 'idle' | 'downloading' | 'done' | 'error';
|
|
2
|
+
export interface DownloadState {
|
|
3
|
+
status: DownloadStatus;
|
|
4
|
+
progress: number;
|
|
5
|
+
receivedMB: number;
|
|
6
|
+
totalMB: number;
|
|
7
|
+
localPath: string | null;
|
|
8
|
+
error: string | null;
|
|
9
|
+
}
|
|
10
|
+
export declare const useFileDownload: (fileName: string, url: string) => {
|
|
11
|
+
state: DownloadState;
|
|
12
|
+
handleView: () => Promise<void>;
|
|
13
|
+
handleDownload: () => Promise<void>;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useFileDownload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFileDownload.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFileDownload.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAiBD,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,KAAK,MAAM;;;;CAsK5D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Image as PickedImage } from 'react-native-image-crop-picker';
|
|
2
|
-
interface ImageWithUploadStatus {
|
|
2
|
+
export interface ImageWithUploadStatus {
|
|
3
3
|
image: PickedImage;
|
|
4
4
|
uploadProgress: number;
|
|
5
5
|
error: string | null;
|
|
@@ -16,5 +16,4 @@ export interface UseImageAttachmentReturn {
|
|
|
16
16
|
clearAllImages: () => void;
|
|
17
17
|
}
|
|
18
18
|
export declare const useImageAttachment: () => UseImageAttachmentReturn;
|
|
19
|
-
export {};
|
|
20
19
|
//# sourceMappingURL=useImageAttachment.d.ts.map
|