@droppii-org/chat-mobile 0.2.50 → 0.2.52
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/index.js +2 -1
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/assets/images/resource-center-empty-box.png +0 -0
- package/lib/module/components/MediaViewerModal.js +2 -1
- package/lib/module/components/MediaViewerModal.js.map +1 -1
- package/lib/module/components/MergedImageGrid.js +1 -0
- package/lib/module/components/MergedImageGrid.js.map +1 -1
- package/lib/module/components/StickerPicker/StickerCategoryTabs.js +86 -0
- package/lib/module/components/StickerPicker/StickerCategoryTabs.js.map +1 -0
- package/lib/module/components/StickerPicker/StickerPickerPlaceholder.js +18 -0
- package/lib/module/components/StickerPicker/StickerPickerPlaceholder.js.map +1 -0
- package/lib/module/components/StickerPicker/StickerPickerRowItem.js +35 -0
- package/lib/module/components/StickerPicker/StickerPickerRowItem.js.map +1 -0
- package/lib/module/components/StickerPicker/StickerSectionList.js +110 -0
- package/lib/module/components/StickerPicker/StickerSectionList.js.map +1 -0
- package/lib/module/components/StickerPicker/constants.js +14 -0
- package/lib/module/components/StickerPicker/constants.js.map +1 -0
- package/lib/module/components/StickerPicker/index.js +134 -0
- package/lib/module/components/StickerPicker/index.js.map +1 -0
- package/lib/module/components/messages/stickerMessage/index.js +28 -0
- package/lib/module/components/messages/stickerMessage/index.js.map +1 -0
- package/lib/module/config/api-endpoints.js +5 -1
- package/lib/module/config/api-endpoints.js.map +1 -1
- package/lib/module/core/notification/pushToken.js +7 -7
- package/lib/module/core/notification/pushToken.js.map +1 -1
- package/lib/module/hooks/conversation/useGetConversationDetail.js +15 -0
- package/lib/module/hooks/conversation/useGetConversationDetail.js.map +1 -1
- package/lib/module/hooks/flows/useGetConversationFlowMainMenu.js +1 -1
- package/lib/module/hooks/flows/useGetConversationFlowMainMenu.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +45 -18
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/query-keys.js +11 -0
- package/lib/module/hooks/query-keys.js.map +1 -1
- package/lib/module/hooks/resourceCenter/useThreadResources.js +116 -0
- package/lib/module/hooks/resourceCenter/useThreadResources.js.map +1 -0
- package/lib/module/hooks/stickers/useFetchStickerByCategory.js +12 -0
- package/lib/module/hooks/stickers/useFetchStickerByCategory.js.map +1 -0
- package/lib/module/hooks/stickers/useStickerCategories.js +14 -0
- package/lib/module/hooks/stickers/useStickerCategories.js.map +1 -0
- package/lib/module/hooks/stickers/useStickerHistory.js +16 -0
- package/lib/module/hooks/stickers/useStickerHistory.js.map +1 -0
- package/lib/module/hooks/useChatCompose.js +1 -18
- package/lib/module/hooks/useChatCompose.js.map +1 -1
- package/lib/module/hooks/useImageAttachment.js +0 -2
- package/lib/module/hooks/useImageAttachment.js.map +1 -1
- package/lib/module/hooks/useMediaViewer.js +4 -1
- package/lib/module/hooks/useMediaViewer.js.map +1 -1
- package/lib/module/hooks/useSendAttachment.js +4 -1
- package/lib/module/hooks/useSendAttachment.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/MediaView/index.js +104 -42
- package/lib/module/screens/MediaView/index.js.map +1 -1
- package/lib/module/screens/ResourceCenter/FileResourceRow.js +80 -0
- package/lib/module/screens/ResourceCenter/FileResourceRow.js.map +1 -0
- package/lib/module/screens/ResourceCenter/GridRenderer.js +83 -0
- package/lib/module/screens/ResourceCenter/GridRenderer.js.map +1 -0
- package/lib/module/screens/ResourceCenter/GridThumbnail.js +97 -0
- package/lib/module/screens/ResourceCenter/GridThumbnail.js.map +1 -0
- package/lib/module/screens/ResourceCenter/LinkResourceRow.js +81 -0
- package/lib/module/screens/ResourceCenter/LinkResourceRow.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ListRenderer.js +60 -0
- package/lib/module/screens/ResourceCenter/ListRenderer.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabBar.js +75 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabBar.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabScene.js +122 -0
- package/lib/module/screens/ResourceCenter/ResourceCenterTabScene.js.map +1 -0
- package/lib/module/screens/ResourceCenter/ResourceEmptyState.js +36 -0
- package/lib/module/screens/ResourceCenter/ResourceEmptyState.js.map +1 -0
- package/lib/module/screens/ResourceCenter/index.js +104 -0
- package/lib/module/screens/ResourceCenter/index.js.map +1 -0
- package/lib/module/screens/ResourceCenter/types.js +25 -0
- package/lib/module/screens/ResourceCenter/types.js.map +1 -0
- package/lib/module/screens/chat-detail/ChatComposer.js +64 -16
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +6 -20
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +15 -4
- package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +3 -0
- package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +5 -6
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/services/attachmentOrchestrator.js +20 -5
- package/lib/module/services/attachmentOrchestrator.js.map +1 -1
- package/lib/module/services/endpoints.js +4 -1
- package/lib/module/services/endpoints.js.map +1 -1
- package/lib/module/services/resourceCenter.js +102 -0
- package/lib/module/services/resourceCenter.js.map +1 -0
- package/lib/module/store/conversation.js +1 -20
- package/lib/module/store/conversation.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +10 -1
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/types/attachment.js +2 -0
- package/lib/module/types/chat.js +26 -0
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/sticker.js +2 -0
- package/lib/module/types/sticker.js.map +1 -0
- package/lib/module/utils/conversation.js +1 -24
- package/lib/module/utils/conversation.js.map +1 -1
- package/lib/module/utils/messageUtils.js +2 -0
- package/lib/module/utils/messageUtils.js.map +1 -1
- package/lib/module/utils/url.js +11 -0
- package/lib/module/utils/url.js.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +1 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
- package/lib/typescript/src/components/MediaViewerModal.d.ts +3 -1
- package/lib/typescript/src/components/MediaViewerModal.d.ts.map +1 -1
- package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -1
- package/lib/typescript/src/components/StickerPicker/StickerCategoryTabs.d.ts +9 -0
- package/lib/typescript/src/components/StickerPicker/StickerCategoryTabs.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerPlaceholder.d.ts +2 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerPlaceholder.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerRowItem.d.ts +8 -0
- package/lib/typescript/src/components/StickerPicker/StickerPickerRowItem.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/StickerSectionList.d.ts +15 -0
- package/lib/typescript/src/components/StickerPicker/StickerSectionList.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/constants.d.ts +11 -0
- package/lib/typescript/src/components/StickerPicker/constants.d.ts.map +1 -0
- package/lib/typescript/src/components/StickerPicker/index.d.ts +7 -0
- package/lib/typescript/src/components/StickerPicker/index.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts +3 -0
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts.map +1 -0
- package/lib/typescript/src/config/api-endpoints.d.ts +4 -0
- package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -1
- package/lib/typescript/src/hooks/conversation/useGetConversationDetail.d.ts +2 -1
- package/lib/typescript/src/hooks/conversation/useGetConversationDetail.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -3
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/src/hooks/query-keys.d.ts +11 -0
- package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
- package/lib/typescript/src/hooks/resourceCenter/useThreadResources.d.ts +21 -0
- package/lib/typescript/src/hooks/resourceCenter/useThreadResources.d.ts.map +1 -0
- package/lib/typescript/src/hooks/stickers/useFetchStickerByCategory.d.ts +3 -0
- package/lib/typescript/src/hooks/stickers/useFetchStickerByCategory.d.ts.map +1 -0
- package/lib/typescript/src/hooks/stickers/useStickerCategories.d.ts +3 -0
- package/lib/typescript/src/hooks/stickers/useStickerCategories.d.ts.map +1 -0
- package/lib/typescript/src/hooks/stickers/useStickerHistory.d.ts +3 -0
- package/lib/typescript/src/hooks/stickers/useStickerHistory.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useMediaViewer.d.ts +5 -1
- package/lib/typescript/src/hooks/useMediaViewer.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/ResourceCenter/FileResourceRow.d.ts +7 -0
- package/lib/typescript/src/screens/ResourceCenter/FileResourceRow.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/GridRenderer.d.ts +14 -0
- package/lib/typescript/src/screens/ResourceCenter/GridRenderer.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/GridThumbnail.d.ts +10 -0
- package/lib/typescript/src/screens/ResourceCenter/GridThumbnail.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/LinkResourceRow.d.ts +8 -0
- package/lib/typescript/src/screens/ResourceCenter/LinkResourceRow.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ListRenderer.d.ts +16 -0
- package/lib/typescript/src/screens/ResourceCenter/ListRenderer.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabBar.d.ts +3 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabBar.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabScene.d.ts +16 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceCenterTabScene.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceEmptyState.d.ts +6 -0
- package/lib/typescript/src/screens/ResourceCenter/ResourceEmptyState.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/index.d.ts +4 -0
- package/lib/typescript/src/screens/ResourceCenter/index.d.ts.map +1 -0
- package/lib/typescript/src/screens/ResourceCenter/types.d.ts +28 -0
- package/lib/typescript/src/screens/ResourceCenter/types.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +2 -2
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +2 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +3 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
- package/lib/typescript/src/services/endpoints.d.ts +4 -1
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
- package/lib/typescript/src/services/resourceCenter.d.ts +9 -0
- package/lib/typescript/src/services/resourceCenter.d.ts.map +1 -0
- package/lib/typescript/src/store/conversation.d.ts +0 -3
- package/lib/typescript/src/store/conversation.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 +2 -0
- package/lib/typescript/src/types/attachment.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +66 -15
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/sticker.d.ts +21 -0
- package/lib/typescript/src/types/sticker.d.ts.map +1 -0
- package/lib/typescript/src/utils/conversation.d.ts +1 -2
- package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
- package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
- package/lib/typescript/src/utils/url.d.ts +7 -0
- package/lib/typescript/src/utils/url.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/assets/images/index.ts +1 -0
- package/src/assets/images/resource-center-empty-box.png +0 -0
- package/src/components/MediaViewerModal.tsx +8 -3
- package/src/components/MergedImageGrid.tsx +1 -0
- package/src/components/StickerPicker/StickerCategoryTabs.tsx +103 -0
- package/src/components/StickerPicker/StickerPickerPlaceholder.tsx +16 -0
- package/src/components/StickerPicker/StickerPickerRowItem.tsx +43 -0
- package/src/components/StickerPicker/StickerSectionList.tsx +141 -0
- package/src/components/StickerPicker/constants.ts +20 -0
- package/src/components/StickerPicker/index.tsx +166 -0
- package/src/components/messages/stickerMessage/index.tsx +26 -0
- package/src/config/api-endpoints.ts +8 -0
- package/src/core/notification/pushToken.ts +7 -7
- package/src/hooks/conversation/useGetConversationDetail.ts +20 -1
- package/src/hooks/flows/useGetConversationFlowMainMenu.ts +1 -1
- package/src/hooks/message/useSendMessage.ts +49 -27
- package/src/hooks/query-keys.ts +16 -0
- package/src/hooks/resourceCenter/useThreadResources.ts +124 -0
- package/src/hooks/stickers/useFetchStickerByCategory.ts +15 -0
- package/src/hooks/stickers/useStickerCategories.ts +17 -0
- package/src/hooks/stickers/useStickerHistory.ts +19 -0
- package/src/hooks/useChatCompose.ts +0 -19
- package/src/hooks/useImageAttachment.ts +1 -2
- package/src/hooks/useMediaViewer.ts +21 -7
- package/src/hooks/useSendAttachment.ts +4 -1
- package/src/index.tsx +2 -0
- package/src/screens/MediaView/index.tsx +117 -54
- package/src/screens/ResourceCenter/FileResourceRow.tsx +99 -0
- package/src/screens/ResourceCenter/GridRenderer.tsx +104 -0
- package/src/screens/ResourceCenter/GridThumbnail.tsx +98 -0
- package/src/screens/ResourceCenter/LinkResourceRow.tsx +96 -0
- package/src/screens/ResourceCenter/ListRenderer.tsx +81 -0
- package/src/screens/ResourceCenter/ResourceCenterTabBar.tsx +89 -0
- package/src/screens/ResourceCenter/ResourceCenterTabScene.tsx +142 -0
- package/src/screens/ResourceCenter/ResourceEmptyState.tsx +39 -0
- package/src/screens/ResourceCenter/index.tsx +129 -0
- package/src/screens/ResourceCenter/types.ts +56 -0
- package/src/screens/chat-detail/ChatComposer.tsx +106 -19
- package/src/screens/chat-detail/ChatDetail.tsx +5 -19
- package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +21 -5
- package/src/screens/chat-detail/hooks/useChatComposerState.ts +7 -0
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +4 -5
- package/src/services/attachmentOrchestrator.ts +16 -3
- package/src/services/endpoints.ts +6 -1
- package/src/services/resourceCenter.ts +137 -0
- package/src/store/conversation.ts +0 -24
- package/src/translation/resources/i18n.ts +10 -0
- package/src/types/attachment.ts +3 -0
- package/src/types/chat.ts +80 -15
- package/src/types/sticker.ts +23 -0
- package/src/utils/conversation.ts +0 -28
- package/src/utils/messageUtils.ts +3 -0
- package/src/utils/url.ts +11 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useState","DeviceUtils","UIUtils","trans","getMimeType","isVideoFromPicker","UPLOAD_CONCURRENCY","UPLOAD_LIMITS","ImageUploadAPI","VideoThumbnailUtil","pLimit","useImageAttachment","selectedImages","setSelectedImages","isImagePreviewVisible","setIsImagePreviewVisible","updateImageStatus","index","updates","prev","newImages","uploadImage","image","isUploading","error","uploadProgress","filePath","path","startsWith","replace","filename","uploadedImage","uploadImageFile","size","width","height","mime","progress","url","Error","uploadedUrl","msg","message","toast","open","title","theme","generateVideoThumbnail","video","videoDuration","duration","timeMs","Math","min","max","floor","baseName","thumbnail","generateThumbnail","time","quality","cacheId","Date","now","uploadedThumbnail","thumbnailUrl","thumbnailSize","__DEV__","console","warn","cleanupThumbnail","catch","handleImageAttach","multipleMode","images","openImagePicker","length","isWithinLimit","item","maxSize","
|
|
1
|
+
{"version":3,"names":["useCallback","useState","DeviceUtils","UIUtils","trans","getMimeType","isVideoFromPicker","UPLOAD_CONCURRENCY","UPLOAD_LIMITS","ImageUploadAPI","VideoThumbnailUtil","pLimit","useImageAttachment","selectedImages","setSelectedImages","isImagePreviewVisible","setIsImagePreviewVisible","updateImageStatus","index","updates","prev","newImages","uploadImage","image","isUploading","error","uploadProgress","filePath","path","startsWith","replace","filename","uploadedImage","uploadImageFile","size","width","height","mime","progress","url","Error","uploadedUrl","msg","message","toast","open","title","theme","generateVideoThumbnail","video","videoDuration","duration","timeMs","Math","min","max","floor","baseName","thumbnail","generateThumbnail","time","quality","cacheId","Date","now","uploadedThumbnail","thumbnailUrl","thumbnailSize","__DEV__","console","warn","cleanupThumbnail","catch","handleImageAttach","multipleMode","images","openImagePicker","length","isWithinLimit","item","maxSize","oversizedItems","filter","img","isVideo","some","String","finalImages","startIndex","map","Promise","all","offset","handleImageRemove","_","i","clearAllImages"],"sourceRoot":"../../../src","sources":["hooks/useImageAttachment.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,9 +5,11 @@ export function useMediaViewer() {
|
|
|
5
5
|
const [visible, setVisible] = useState(false);
|
|
6
6
|
const [mediaList, setMediaList] = useState([]);
|
|
7
7
|
const [initIndex, setInitIndex] = useState(0);
|
|
8
|
-
const
|
|
8
|
+
const [pagination, setPagination] = useState(true);
|
|
9
|
+
const show = useCallback((items, index = 0, options) => {
|
|
9
10
|
setMediaList(items);
|
|
10
11
|
setInitIndex(index);
|
|
12
|
+
setPagination(options?.pagination ?? true);
|
|
11
13
|
setVisible(true);
|
|
12
14
|
}, []);
|
|
13
15
|
const hide = useCallback(() => {
|
|
@@ -17,6 +19,7 @@ export function useMediaViewer() {
|
|
|
17
19
|
visible,
|
|
18
20
|
mediaList,
|
|
19
21
|
initIndex,
|
|
22
|
+
pagination,
|
|
20
23
|
show,
|
|
21
24
|
hide
|
|
22
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useState","useMediaViewer","visible","setVisible","mediaList","setMediaList","initIndex","setInitIndex","show","items","index","hide"],"sourceRoot":"../../../src","sources":["hooks/useMediaViewer.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"names":["useCallback","useState","useMediaViewer","visible","setVisible","mediaList","setMediaList","initIndex","setInitIndex","pagination","setPagination","show","items","index","options","hide"],"sourceRoot":"../../../src","sources":["hooks/useMediaViewer.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAwB7C,OAAO,SAASC,cAAcA,CAAA,EAAyB;EACrD,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGH,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACI,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,CAAc,EAAE,CAAC;EAC3D,MAAM,CAACM,SAAS,EAAEC,YAAY,CAAC,GAAGP,QAAQ,CAAC,CAAC,CAAC;EAC7C,MAAM,CAACQ,UAAU,EAAEC,aAAa,CAAC,GAAGT,QAAQ,CAAC,IAAI,CAAC;EAElD,MAAMU,IAAI,GAAGX,WAAW,CACtB,CAACY,KAAkB,EAAEC,KAAK,GAAG,CAAC,EAAEC,OAAgC,KAAK;IACnER,YAAY,CAACM,KAAK,CAAC;IACnBJ,YAAY,CAACK,KAAK,CAAC;IACnBH,aAAa,CAACI,OAAO,EAAEL,UAAU,IAAI,IAAI,CAAC;IAC1CL,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EACD,EACF,CAAC;EAED,MAAMW,IAAI,GAAGf,WAAW,CAAC,MAAM;IAC7BI,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAED,OAAO;IAAEE,SAAS;IAAEE,SAAS;IAAEE,UAAU;IAAEE,IAAI;IAAEI;EAAK,CAAC;AAClE","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useState } from 'react';
|
|
4
4
|
import { AttachmentOrchestratorService } from "../services/attachmentOrchestrator.js";
|
|
5
5
|
import { getMimeType } from "../utils/imageUtils.js";
|
|
6
|
+
import { useChatContext } from "../context/index.js";
|
|
6
7
|
/**
|
|
7
8
|
* Smart hook để send mixed attachments (images + videos + files cùng lúc)
|
|
8
9
|
* - Detect type của từng item
|
|
@@ -12,6 +13,7 @@ import { getMimeType } from "../utils/imageUtils.js";
|
|
|
12
13
|
export function useSendAttachment() {
|
|
13
14
|
const [isLoading, setIsLoading] = useState(false);
|
|
14
15
|
const [error, setError] = useState(null);
|
|
16
|
+
const applicationType = useChatContext().applicationType;
|
|
15
17
|
const send = useCallback(async (items, options) => {
|
|
16
18
|
console.log('[useSendAttachment] Start sending', {
|
|
17
19
|
totalItems: items.length,
|
|
@@ -141,6 +143,7 @@ export function useSendAttachment() {
|
|
|
141
143
|
});
|
|
142
144
|
const result = await AttachmentOrchestratorService.sendPreparedAttachments(attachments, uploadedUrls, {
|
|
143
145
|
strategy: 'individual',
|
|
146
|
+
applicationType,
|
|
144
147
|
...options
|
|
145
148
|
});
|
|
146
149
|
console.log('[useSendAttachment] Send result:', {
|
|
@@ -170,7 +173,7 @@ export function useSendAttachment() {
|
|
|
170
173
|
setIsLoading(false);
|
|
171
174
|
console.log('[useSendAttachment] Finished');
|
|
172
175
|
}
|
|
173
|
-
}, []);
|
|
176
|
+
}, [applicationType]);
|
|
174
177
|
const clearError = useCallback(() => setError(null), []);
|
|
175
178
|
return {
|
|
176
179
|
isLoading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useState","AttachmentOrchestratorService","getMimeType","useSendAttachment","isLoading","setIsLoading","error","setError","send","items","options","console","log","totalItems","length","strategy","uploadedItems","filter","item","uploadedUrl","uploadedCount","uploadedTypes","map","i","type","warn","itemCount","itemTypes","attachments","baseId","Date","now","Math","random","itemType","includes","originalType","detectedType","id","sourceFile","path","image","filename","size","mimeType","metadata","width","height","videoData","video","duration","thumbnailUrl","undefined","thumbnailSize","thumbnail","url","file","extension","split","pop","category","Error","uploadedUrls","forEach","sourcePath","att","find","a","attachmentId","attachmentCount","result","sendPreparedAttachments","success","sentCount","sentAttachmentIds","failedCount","failedAttachmentIds","mergedMessageId","errors","errorMsg","Object","values","join","err","message","stack","clearError"],"sourceRoot":"../../../src","sources":["hooks/useSendAttachment.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAC7C,SAASC,6BAA6B,QAAQ,uCAAoC;AAElF,SAASC,WAAW,QAAQ,wBAAqB;
|
|
1
|
+
{"version":3,"names":["useCallback","useState","AttachmentOrchestratorService","getMimeType","useChatContext","useSendAttachment","isLoading","setIsLoading","error","setError","applicationType","send","items","options","console","log","totalItems","length","strategy","uploadedItems","filter","item","uploadedUrl","uploadedCount","uploadedTypes","map","i","type","warn","itemCount","itemTypes","attachments","baseId","Date","now","Math","random","itemType","includes","originalType","detectedType","id","sourceFile","path","image","filename","size","mimeType","metadata","width","height","videoData","video","duration","thumbnailUrl","undefined","thumbnailSize","thumbnail","url","file","extension","split","pop","category","Error","uploadedUrls","forEach","sourcePath","att","find","a","attachmentId","attachmentCount","result","sendPreparedAttachments","success","sentCount","sentAttachmentIds","failedCount","failedAttachmentIds","mergedMessageId","errors","errorMsg","Object","values","join","err","message","stack","clearError"],"sourceRoot":"../../../src","sources":["hooks/useSendAttachment.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export { AttachmentPreview } from "./components/AttachmentPreview/index.js";
|
|
|
22
22
|
export { MediaViewerModal } from "./components/MediaViewerModal.js";
|
|
23
23
|
export { Inbox } from "./screens/inbox/index.js";
|
|
24
24
|
export { default as MediaViewerScreen } from "./screens/MediaView/index.js";
|
|
25
|
+
export { default as ResourceCenterScreen } from "./screens/ResourceCenter/index.js";
|
|
25
26
|
export * from "./screens/chat-detail/index.js";
|
|
26
27
|
export { LoginStatus, MessageType } from '@droppii/openim-rn-client-sdk';
|
|
27
28
|
export * from "./screens/chat-detail/index.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ChatAPI","setAuthToken","getAuthToken","clearAuthToken","setTokenRefreshCallback","setTokenRefreshFailedCallback","refreshAuthToken","initBaseUrl","getBaseUrl","Config","useImageAttachment","useMediaViewer","initializeAttachmentHandlers","AttachmentOrchestratorService","Avatar","ThreadCard","AttachmentPreview","MediaViewerModal","Inbox","default","MediaViewerScreen","LoginStatus","MessageType","registerUIUtils","UIUtils","DFlowContext"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AACpC,SACEC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,uBAAuB,EACvBC,6BAA6B,EAC7BC,gBAAgB,QACX,oBAAiB;AACxB,SAASC,WAAW,EAAEC,UAAU,QAAQ,2BAAwB;AAChE,SAASC,MAAM,QAAQ,mBAAU;AACjC,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,oBAAW;AACzB,cAAc,gCAA6B;AAC3C,cAAc,mCAAgC;AAC9C,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,cAAc,QAAQ,2BAAwB;AAEvD,cAAc,iBAAc;AAC5B,cAAc,wBAAqB;AACnC,cAAc,uBAAoB;AAClC,SAASC,4BAA4B,QAAQ,wCAA+B;AAC5E,SAASC,6BAA6B,QAAQ,sCAAmC;AACjF,SAASC,MAAM,QAAQ,8BAAqB;AAC5C,SAASC,UAAU,QAAQ,kCAAyB;AACpD,SAASC,iBAAiB,QAAQ,yCAAgC;AAClE,SAASC,gBAAgB,QAAQ,kCAA+B;AAChE,SAASC,KAAK,QAAQ,0BAAiB;AACvC,SAASC,OAAO,IAAIC,iBAAiB,QAAQ,8BAAqB;AAClE,cAAc,gCAAuB;AAOrC,SAASC,WAAW,EAAEC,WAAW,QAAQ,+BAA+B;AACxE,cAAc,gCAAuB;AAerC,SAASC,eAAe,EAAEC,OAAO,QAAQ,oBAAiB;AAE1D,SAASC,YAAY,QAAQ,kBAAe","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ChatAPI","setAuthToken","getAuthToken","clearAuthToken","setTokenRefreshCallback","setTokenRefreshFailedCallback","refreshAuthToken","initBaseUrl","getBaseUrl","Config","useImageAttachment","useMediaViewer","initializeAttachmentHandlers","AttachmentOrchestratorService","Avatar","ThreadCard","AttachmentPreview","MediaViewerModal","Inbox","default","MediaViewerScreen","ResourceCenterScreen","LoginStatus","MessageType","registerUIUtils","UIUtils","DFlowContext"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AACpC,SACEC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,uBAAuB,EACvBC,6BAA6B,EAC7BC,gBAAgB,QACX,oBAAiB;AACxB,SAASC,WAAW,EAAEC,UAAU,QAAQ,2BAAwB;AAChE,SAASC,MAAM,QAAQ,mBAAU;AACjC,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,oBAAW;AACzB,cAAc,gCAA6B;AAC3C,cAAc,mCAAgC;AAC9C,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,cAAc,QAAQ,2BAAwB;AAEvD,cAAc,iBAAc;AAC5B,cAAc,wBAAqB;AACnC,cAAc,uBAAoB;AAClC,SAASC,4BAA4B,QAAQ,wCAA+B;AAC5E,SAASC,6BAA6B,QAAQ,sCAAmC;AACjF,SAASC,MAAM,QAAQ,8BAAqB;AAC5C,SAASC,UAAU,QAAQ,kCAAyB;AACpD,SAASC,iBAAiB,QAAQ,yCAAgC;AAClE,SAASC,gBAAgB,QAAQ,kCAA+B;AAChE,SAASC,KAAK,QAAQ,0BAAiB;AACvC,SAASC,OAAO,IAAIC,iBAAiB,QAAQ,8BAAqB;AAClE,SAASD,OAAO,IAAIE,oBAAoB,QAAQ,mCAA0B;AAE1E,cAAc,gCAAuB;AAOrC,SAASC,WAAW,EAAEC,WAAW,QAAQ,+BAA+B;AACxE,cAAc,gCAAuB;AAerC,SAASC,eAAe,EAAEC,OAAO,QAAQ,oBAAiB;AAE1D,SAASC,YAAY,QAAQ,kBAAe","ignoreList":[]}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useCallback, useEffect, useRef, useState, useMemo } from 'react';
|
|
4
|
-
import { BackHandler, Platform, StyleSheet,
|
|
4
|
+
import { ActivityIndicator, BackHandler, Platform, StyleSheet, StatusBar } from 'react-native';
|
|
5
|
+
import { LegendList } from '@legendapp/list/react-native';
|
|
5
6
|
import LinearGradient from 'react-native-linear-gradient';
|
|
6
7
|
import Animated, { FadeIn, FadeOut, SlideInDown, SlideOutDown } from 'react-native-reanimated';
|
|
7
8
|
import { Pagination } from 'react-native-snap-carousel';
|
|
8
9
|
import PhotoView from 'react-native-photo-view';
|
|
10
|
+
import RNFS from 'react-native-fs';
|
|
11
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
12
|
+
import { saveDocuments } from '@react-native-documents/picker';
|
|
9
13
|
import { KColors, KContainer, KDims, KImage, KLabel, KRadiusValue, KSpacingValue } from '@droppii/libs';
|
|
10
14
|
import VideoPlayer from "./VideoPlayer.js";
|
|
15
|
+
import { UIUtils } from "../../utils/UIUtils.js";
|
|
16
|
+
import { trans } from "../../translation/index.js";
|
|
17
|
+
import { getMimeType } from "../../utils/imageUtils.js";
|
|
11
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
19
|
const MediaViewerScreen = props => {
|
|
13
20
|
const {
|
|
@@ -17,13 +24,58 @@ const MediaViewerScreen = props => {
|
|
|
17
24
|
pagination,
|
|
18
25
|
onDismiss
|
|
19
26
|
} = props;
|
|
27
|
+
const insets = useSafeAreaInsets();
|
|
20
28
|
const listRef = useRef(null);
|
|
21
29
|
const [index, setIndex] = useState(initIndex);
|
|
22
30
|
const [isScrolling, setIsScrolling] = useState(false);
|
|
31
|
+
const [isDownloading, setIsDownloading] = useState(false);
|
|
23
32
|
const dismiss = useCallback(() => {
|
|
24
33
|
onDismiss?.();
|
|
25
34
|
}, [onDismiss]);
|
|
26
|
-
|
|
35
|
+
|
|
36
|
+
// Downloads the currently-viewed image/video, mirroring `useFileDownload`'s
|
|
37
|
+
// RNFS-download + Save-As-document pattern (no gallery/CameraRoll dependency
|
|
38
|
+
// exists in this repo — Save As is the only working "download" mechanism here).
|
|
39
|
+
const onDownload = useCallback(async () => {
|
|
40
|
+
const item = images[index];
|
|
41
|
+
if (!item?.url || isDownloading) return;
|
|
42
|
+
setIsDownloading(true);
|
|
43
|
+
try {
|
|
44
|
+
const urlPath = item.url.split('?')[0];
|
|
45
|
+
const fallbackExt = item.isVideo ? 'mp4' : 'jpg';
|
|
46
|
+
const fileName = urlPath.split('/').pop() || `${item.isVideo ? 'video' : 'image'}-${index}.${fallbackExt}`;
|
|
47
|
+
const destPath = `${RNFS.CachesDirectoryPath}/${fileName}`;
|
|
48
|
+
const exists = await RNFS.exists(destPath);
|
|
49
|
+
if (!exists) {
|
|
50
|
+
const result = await RNFS.downloadFile({
|
|
51
|
+
fromUrl: item.url,
|
|
52
|
+
toFile: destPath
|
|
53
|
+
}).promise;
|
|
54
|
+
if (result.statusCode < 200 || result.statusCode >= 300) {
|
|
55
|
+
throw new Error(`HTTP ${result.statusCode}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
await saveDocuments({
|
|
59
|
+
sourceUris: [`file://${destPath}`],
|
|
60
|
+
mimeType: getMimeType(fileName),
|
|
61
|
+
fileName,
|
|
62
|
+
copy: true
|
|
63
|
+
});
|
|
64
|
+
UIUtils.toast.open({
|
|
65
|
+
title: trans('chat:file_downloaded_success', {
|
|
66
|
+
fileName
|
|
67
|
+
}),
|
|
68
|
+
theme: 'info'
|
|
69
|
+
});
|
|
70
|
+
} catch {
|
|
71
|
+
UIUtils.toast.open({
|
|
72
|
+
title: trans('chat:file_download_failed'),
|
|
73
|
+
theme: 'warning'
|
|
74
|
+
});
|
|
75
|
+
} finally {
|
|
76
|
+
setIsDownloading(false);
|
|
77
|
+
}
|
|
78
|
+
}, [images, index, isDownloading]);
|
|
27
79
|
useEffect(() => {
|
|
28
80
|
StatusBar.setHidden(true);
|
|
29
81
|
return () => {
|
|
@@ -41,18 +93,6 @@ const MediaViewerScreen = props => {
|
|
|
41
93
|
}, [dismiss]);
|
|
42
94
|
const onMomentumScrollBegin = useCallback(() => setIsScrolling(true), []);
|
|
43
95
|
const onMomentumScrollEnd = useCallback(() => setIsScrolling(false), []);
|
|
44
|
-
const onScrollToIndexFailed = useCallback(info => {
|
|
45
|
-
const len = images.length;
|
|
46
|
-
const wait = new Promise(resolve => setTimeout(() => resolve(true), 0));
|
|
47
|
-
wait.then(() => {
|
|
48
|
-
if (info.index > -1 && info.index < len) {
|
|
49
|
-
listRef.current?.scrollToIndex({
|
|
50
|
-
index: info.index,
|
|
51
|
-
animated: false
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}, [images]);
|
|
56
96
|
const onViewableItemsChanged = useRef(({
|
|
57
97
|
viewableItems
|
|
58
98
|
}) => {
|
|
@@ -88,25 +128,32 @@ const MediaViewerScreen = props => {
|
|
|
88
128
|
})]
|
|
89
129
|
}), [index, isScrolling]);
|
|
90
130
|
const renderFooter = useMemo(() => {
|
|
91
|
-
|
|
131
|
+
// `pagination` only toggles the dot indicator (noisy on large sets like
|
|
132
|
+
// Resource Center grids) — the current-index counter should always show.
|
|
133
|
+
if (images.length <= 1) return null;
|
|
92
134
|
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
93
|
-
style: styles.footer,
|
|
135
|
+
style: [styles.footer, {
|
|
136
|
+
bottom: insets.bottom > 0 ? insets.bottom + KSpacingValue['0.5rem'] : KSpacingValue['2rem']
|
|
137
|
+
}],
|
|
94
138
|
children: [/*#__PURE__*/_jsxs(KLabel.Text, {
|
|
95
139
|
typo: "TextNmNormal",
|
|
96
140
|
color: KColors.white,
|
|
97
141
|
style: styles.counterText,
|
|
98
142
|
children: [index + 1, "/", images.length]
|
|
99
|
-
}), /*#__PURE__*/_jsx(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
143
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
144
|
+
visible: pagination !== false,
|
|
145
|
+
children: /*#__PURE__*/_jsx(Pagination, {
|
|
146
|
+
dotContainerStyle: styles.dotContainerStyle,
|
|
147
|
+
dotStyle: styles.dot,
|
|
148
|
+
inactiveDotStyle: styles.inactiveDot,
|
|
149
|
+
inactiveDotScale: 0.6,
|
|
150
|
+
dotsLength: images.length,
|
|
151
|
+
activeDotIndex: index,
|
|
152
|
+
inactiveDotOpacity: 0.5
|
|
153
|
+
})
|
|
107
154
|
})]
|
|
108
155
|
});
|
|
109
|
-
}, [pagination, images.length, index]);
|
|
156
|
+
}, [pagination, images.length, index, insets.bottom]);
|
|
110
157
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
111
158
|
style: styles.wrapper,
|
|
112
159
|
entering: SlideInDown,
|
|
@@ -117,7 +164,9 @@ const MediaViewerScreen = props => {
|
|
|
117
164
|
style: styles.flex,
|
|
118
165
|
children: [/*#__PURE__*/_jsx(LinearGradient, {
|
|
119
166
|
colors: ['rgba(0,0,0,0.9)', 'rgba(0,0,0,0)'],
|
|
120
|
-
style: [styles.topOverlay
|
|
167
|
+
style: [styles.topOverlay, {
|
|
168
|
+
paddingTop: insets.top
|
|
169
|
+
}],
|
|
121
170
|
pointerEvents: "box-none",
|
|
122
171
|
children: /*#__PURE__*/_jsxs(KContainer.View, {
|
|
123
172
|
style: styles.headerRow,
|
|
@@ -131,22 +180,36 @@ const MediaViewerScreen = props => {
|
|
|
131
180
|
})
|
|
132
181
|
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
133
182
|
flex: true
|
|
134
|
-
}),
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
183
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
184
|
+
visible: !!download,
|
|
185
|
+
children: /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
186
|
+
style: styles.headerBtn,
|
|
187
|
+
onPress: isDownloading ? undefined : onDownload,
|
|
188
|
+
disabled: isDownloading,
|
|
189
|
+
children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
190
|
+
visible: isDownloading,
|
|
191
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
192
|
+
size: "small",
|
|
193
|
+
color: KColors.white
|
|
194
|
+
})
|
|
195
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
196
|
+
visible: !isDownloading,
|
|
197
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
198
|
+
name: "download-o",
|
|
199
|
+
size: 24,
|
|
200
|
+
color: KColors.white
|
|
201
|
+
})
|
|
202
|
+
})]
|
|
141
203
|
})
|
|
142
204
|
})]
|
|
143
205
|
})
|
|
144
|
-
}), /*#__PURE__*/_jsx(
|
|
206
|
+
}), /*#__PURE__*/_jsx(LegendList, {
|
|
145
207
|
ref: listRef,
|
|
146
208
|
initialScrollIndex: initIndex >= images?.length ? images?.length - 1 : initIndex,
|
|
147
209
|
data: images,
|
|
148
210
|
renderItem: renderItem,
|
|
149
211
|
keyExtractor: keyEx,
|
|
212
|
+
estimatedItemSize: KDims.width,
|
|
150
213
|
pagingEnabled: true,
|
|
151
214
|
horizontal: true,
|
|
152
215
|
showsHorizontalScrollIndicator: false,
|
|
@@ -154,12 +217,8 @@ const MediaViewerScreen = props => {
|
|
|
154
217
|
viewabilityConfig: {
|
|
155
218
|
itemVisiblePercentThreshold: 50
|
|
156
219
|
},
|
|
157
|
-
onScrollToIndexFailed: onScrollToIndexFailed,
|
|
158
220
|
onMomentumScrollBegin: onMomentumScrollBegin,
|
|
159
221
|
onMomentumScrollEnd: onMomentumScrollEnd,
|
|
160
|
-
removeClippedSubviews: true,
|
|
161
|
-
maxToRenderPerBatch: 2,
|
|
162
|
-
windowSize: 3,
|
|
163
222
|
style: styles.flex
|
|
164
223
|
}), renderFooter]
|
|
165
224
|
})
|
|
@@ -180,13 +239,14 @@ const styles = StyleSheet.create({
|
|
|
180
239
|
height: KDims.height
|
|
181
240
|
},
|
|
182
241
|
topOverlay: {
|
|
183
|
-
//
|
|
242
|
+
// `paddingTop` is overridden inline with `useSafeAreaInsets().top` (real
|
|
243
|
+
// notch/status-bar inset, both platforms).
|
|
244
|
+
position: 'absolute',
|
|
184
245
|
top: 0,
|
|
185
246
|
left: 0,
|
|
186
247
|
right: 0,
|
|
187
248
|
zIndex: 100,
|
|
188
|
-
minHeight: 100
|
|
189
|
-
paddingTop: 30
|
|
249
|
+
minHeight: 100
|
|
190
250
|
},
|
|
191
251
|
// Figma: Header-First-Row — flex row, padding 8, alignItems center
|
|
192
252
|
headerRow: {
|
|
@@ -239,8 +299,10 @@ const styles = StyleSheet.create({
|
|
|
239
299
|
letterSpacing: 0.12
|
|
240
300
|
},
|
|
241
301
|
footer: {
|
|
302
|
+
// `bottom` is overridden inline with `useSafeAreaInsets()` (real device
|
|
303
|
+
// inset, both platforms) — `KDims.bottomSafeHeight` only covers iPhone
|
|
304
|
+
// notch/Dynamic Island and misses Android gesture-nav insets.
|
|
242
305
|
position: 'absolute',
|
|
243
|
-
bottom: KDims.bottomSafeHeight > 0 ? KDims.bottomSafeHeight + KSpacingValue['0.5rem'] : KSpacingValue['2rem'],
|
|
244
306
|
alignSelf: 'center',
|
|
245
307
|
alignItems: 'center',
|
|
246
308
|
zIndex: 10
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useState","useMemo","BackHandler","Platform","StyleSheet","FlatList","StatusBar","LinearGradient","Animated","FadeIn","FadeOut","SlideInDown","SlideOutDown","Pagination","PhotoView","KColors","KContainer","KDims","KImage","KLabel","KRadiusValue","KSpacingValue","VideoPlayer","jsx","_jsx","jsxs","_jsxs","MediaViewerScreen","props","images","initIndex","download","pagination","onDismiss","listRef","index","setIndex","isScrolling","setIsScrolling","dismiss","onDownload","setHidden","OS","sub","addEventListener","remove","onMomentumScrollBegin","onMomentumScrollEnd","onScrollToIndexFailed","info","len","length","wait","Promise","resolve","setTimeout","then","current","scrollToIndex","animated","onViewableItemsChanged","viewableItems","i","keyEx","item","url","renderItem","itemIndex","Touchable","center","activeOpacity","children","VisibleView","visible","isVideo","isActive","showCustomControls","source","uri","minimumZoomScale","maximumZoomScale","scale","androidScaleType","style","styles","img","renderFooter","View","footer","Text","typo","color","white","counterText","dotContainerStyle","dotStyle","dot","inactiveDotStyle","inactiveDot","inactiveDotScale","dotsLength","activeDotIndex","inactiveDotOpacity","wrapper","entering","exiting","stiffness","flex","colors","topOverlay","pointerEvents","headerRow","headerBtn","onPress","VectorIcons","name","size","ref","initialScrollIndex","data","keyExtractor","pagingEnabled","horizontal","showsHorizontalScrollIndicator","viewabilityConfig","itemVisiblePercentThreshold","removeClippedSubviews","maxToRenderPerBatch","windowSize","displayName","create","backgroundColor","black","width","height","top","left","right","zIndex","minHeight","paddingTop","flexDirection","alignItems","padding","borderRadius","justifyContent","actionGroup","gap","counterWrapper","position","letterSpacing","cartIconStyle","selectToDownloadWrapper","marginTop","selectToDownloadBtn","paddingHorizontal","borderWidth","borderColor","selectToDownloadText","bottom","bottomSafeHeight","alignSelf","marginHorizontal","gray","light"],"sourceRoot":"../../../../src","sources":["screens/MediaView/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","useMemo","ActivityIndicator","BackHandler","Platform","StyleSheet","StatusBar","LegendList","LinearGradient","Animated","FadeIn","FadeOut","SlideInDown","SlideOutDown","Pagination","PhotoView","RNFS","useSafeAreaInsets","saveDocuments","KColors","KContainer","KDims","KImage","KLabel","KRadiusValue","KSpacingValue","VideoPlayer","UIUtils","trans","getMimeType","jsx","_jsx","jsxs","_jsxs","MediaViewerScreen","props","images","initIndex","download","pagination","onDismiss","insets","listRef","index","setIndex","isScrolling","setIsScrolling","isDownloading","setIsDownloading","dismiss","onDownload","item","url","urlPath","split","fallbackExt","isVideo","fileName","pop","destPath","CachesDirectoryPath","exists","result","downloadFile","fromUrl","toFile","promise","statusCode","Error","sourceUris","mimeType","copy","toast","open","title","theme","setHidden","OS","sub","addEventListener","remove","onMomentumScrollBegin","onMomentumScrollEnd","onViewableItemsChanged","viewableItems","i","current","keyEx","renderItem","itemIndex","Touchable","center","activeOpacity","children","VisibleView","visible","isActive","showCustomControls","source","uri","minimumZoomScale","maximumZoomScale","scale","androidScaleType","style","styles","img","renderFooter","length","View","footer","bottom","Text","typo","color","white","counterText","dotContainerStyle","dotStyle","dot","inactiveDotStyle","inactiveDot","inactiveDotScale","dotsLength","activeDotIndex","inactiveDotOpacity","wrapper","entering","exiting","stiffness","flex","colors","topOverlay","paddingTop","top","pointerEvents","headerRow","headerBtn","onPress","VectorIcons","name","size","undefined","disabled","ref","initialScrollIndex","data","keyExtractor","estimatedItemSize","width","pagingEnabled","horizontal","showsHorizontalScrollIndicator","viewabilityConfig","itemVisiblePercentThreshold","displayName","create","backgroundColor","black","height","position","left","right","zIndex","minHeight","flexDirection","alignItems","padding","borderRadius","justifyContent","actionGroup","gap","counterWrapper","letterSpacing","cartIconStyle","selectToDownloadWrapper","marginTop","selectToDownloadBtn","paddingHorizontal","borderWidth","borderColor","selectToDownloadText","alignSelf","marginHorizontal","gray","light"],"sourceRoot":"../../../../src","sources":["screens/MediaView/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useMemo } from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
|
|
6
|
+
import { useFileDownload } from "../../hooks/useFileDownload.js";
|
|
7
|
+
import { getFileIcon, getMimeType, formatFileSize } from "../../utils/imageUtils.js";
|
|
8
|
+
import { trans } from "../../translation/index.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
export const FileResourceRow = /*#__PURE__*/memo(({
|
|
11
|
+
item
|
|
12
|
+
}) => {
|
|
13
|
+
const fileName = item.fileName || '[File]';
|
|
14
|
+
const url = item.sourceUrl || '';
|
|
15
|
+
const {
|
|
16
|
+
state,
|
|
17
|
+
handleView
|
|
18
|
+
} = useFileDownload(fileName, url);
|
|
19
|
+
const mimeType = useMemo(() => item.mimeType || getMimeType(fileName), [item.mimeType, fileName]);
|
|
20
|
+
const iconSource = useMemo(() => getFileIcon(mimeType), [mimeType]);
|
|
21
|
+
const subtitle = useMemo(() => {
|
|
22
|
+
if (state.status === 'downloading') {
|
|
23
|
+
return trans('chat:file_downloading', {
|
|
24
|
+
received: state.receivedMB ?? 0,
|
|
25
|
+
total: state.totalMB ?? 0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (state.status === 'error') {
|
|
29
|
+
return state.error ?? trans('chat:file_download_failed');
|
|
30
|
+
}
|
|
31
|
+
return formatFileSize(item.fileSize ?? 0);
|
|
32
|
+
}, [state, item.fileSize]);
|
|
33
|
+
const subtitleColor = state.status === 'error' ? KColors.palette.danger?.w400 ?? '#FF3B30' : KColors.palette.gray.w400;
|
|
34
|
+
|
|
35
|
+
// Figma's File-Item component carries a trailing "Close-Button" (X in a dark
|
|
36
|
+
// circle) layer, but it's `visible: false` in every real row — the rendered
|
|
37
|
+
// design has NO trailing icon at all. Confirmed by product decision: no
|
|
38
|
+
// separate download button — the whole row is tappable (`handleView`, same
|
|
39
|
+
// cache-then-open behavior the in-chat `FileMessage` bubble's eye icon uses).
|
|
40
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
41
|
+
style: styles.row,
|
|
42
|
+
br: "3x",
|
|
43
|
+
background: KColors.opacity.grayLighter[20],
|
|
44
|
+
onPress: handleView,
|
|
45
|
+
children: [/*#__PURE__*/_jsx(KImage.Base, {
|
|
46
|
+
uri: iconSource,
|
|
47
|
+
style: styles.icon,
|
|
48
|
+
resizeMode: "contain"
|
|
49
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
50
|
+
flexS: 1,
|
|
51
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
52
|
+
typo: "TextMdMedium",
|
|
53
|
+
color: KColors.palette.gray.w900,
|
|
54
|
+
numberOfLines: 1,
|
|
55
|
+
ellipsizeMode: "middle",
|
|
56
|
+
children: fileName
|
|
57
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
58
|
+
typo: "TextSmNormal",
|
|
59
|
+
color: subtitleColor,
|
|
60
|
+
numberOfLines: 1,
|
|
61
|
+
children: subtitle
|
|
62
|
+
})]
|
|
63
|
+
})]
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
const styles = StyleSheet.create({
|
|
67
|
+
// Figma File-Item (`14208:88679`): 12px padding all sides, 8px gap, 40x40 icon.
|
|
68
|
+
row: {
|
|
69
|
+
flexDirection: 'row',
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
gap: KSpacingValue['0.5rem'],
|
|
72
|
+
padding: KSpacingValue['0.75rem'],
|
|
73
|
+
marginBottom: KSpacingValue['0.5rem']
|
|
74
|
+
},
|
|
75
|
+
icon: {
|
|
76
|
+
width: 40,
|
|
77
|
+
height: 40
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=FileResourceRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useMemo","StyleSheet","KContainer","KImage","KLabel","KColors","KSpacingValue","useFileDownload","getFileIcon","getMimeType","formatFileSize","trans","jsx","_jsx","jsxs","_jsxs","FileResourceRow","item","fileName","url","sourceUrl","state","handleView","mimeType","iconSource","subtitle","status","received","receivedMB","total","totalMB","error","fileSize","subtitleColor","palette","danger","w400","gray","Touchable","style","styles","row","br","background","opacity","grayLighter","onPress","children","Base","uri","icon","resizeMode","View","flexS","Text","typo","color","w900","numberOfLines","ellipsizeMode","create","flexDirection","alignItems","gap","padding","marginBottom","width","height"],"sourceRoot":"../../../../src","sources":["screens/ResourceCenter/FileResourceRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback, useMemo } from 'react';
|
|
4
|
+
import { ActivityIndicator, StyleSheet, useWindowDimensions } from 'react-native';
|
|
5
|
+
import { LegendList } from '@legendapp/list/react-native';
|
|
6
|
+
import { KContainer, KSpacingValue, KColors } from '@droppii/libs';
|
|
7
|
+
import { GridThumbnail } from "./GridThumbnail.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
const COLUMNS = 3;
|
|
10
|
+
const GRID_GAP = KSpacingValue['0.5rem']; // 8px
|
|
11
|
+
const CONTAINER_PADDING = KSpacingValue['0.75rem']; // 12px
|
|
12
|
+
|
|
13
|
+
export const GridRenderer = /*#__PURE__*/memo(({
|
|
14
|
+
items,
|
|
15
|
+
onEndReached,
|
|
16
|
+
isFetchingNextPage,
|
|
17
|
+
onPressItem,
|
|
18
|
+
onRefresh,
|
|
19
|
+
isRefetching,
|
|
20
|
+
emptyComponent
|
|
21
|
+
}) => {
|
|
22
|
+
// Reactive — do NOT use KDims.width (static snapshot, stale on rotation/resize).
|
|
23
|
+
const {
|
|
24
|
+
width
|
|
25
|
+
} = useWindowDimensions();
|
|
26
|
+
const cellSize = useMemo(() => {
|
|
27
|
+
const raw = (width - CONTAINER_PADDING * 2 - GRID_GAP * (COLUMNS - 1)) / COLUMNS;
|
|
28
|
+
// Floor against a degenerate width (extremely narrow split-screen, or a
|
|
29
|
+
// not-yet-measured `0` on first paint) — a <= 0 `estimatedItemSize` would
|
|
30
|
+
// feed LegendList's internal layout math a divide-by-zero/negative size.
|
|
31
|
+
return Number.isFinite(raw) && raw > 0 ? raw : 1;
|
|
32
|
+
}, [width]);
|
|
33
|
+
const renderItem = useCallback(({
|
|
34
|
+
item,
|
|
35
|
+
index
|
|
36
|
+
}) => /*#__PURE__*/_jsx(GridThumbnail, {
|
|
37
|
+
item: item,
|
|
38
|
+
index: index,
|
|
39
|
+
size: cellSize,
|
|
40
|
+
onPress: onPressItem
|
|
41
|
+
}), [cellSize, onPressItem]);
|
|
42
|
+
const keyExtractor = useCallback(item => item.id, []);
|
|
43
|
+
return /*#__PURE__*/_jsx(LegendList, {
|
|
44
|
+
data: items,
|
|
45
|
+
numColumns: COLUMNS,
|
|
46
|
+
estimatedItemSize: cellSize,
|
|
47
|
+
renderItem: renderItem,
|
|
48
|
+
keyExtractor: keyExtractor
|
|
49
|
+
// `GridThumbnail` is stateless/presentational (derives everything from
|
|
50
|
+
// props, no internal `useState`) — safe to recycle cell instances
|
|
51
|
+
// instead of remounting on scroll. Without this, LegendList defaults to
|
|
52
|
+
// `false` and logs its own dev warning recommending exactly this.
|
|
53
|
+
,
|
|
54
|
+
recycleItems: true,
|
|
55
|
+
contentContainerStyle: styles.content,
|
|
56
|
+
columnWrapperStyle: styles.row,
|
|
57
|
+
onEndReached: onEndReached,
|
|
58
|
+
onEndReachedThreshold: 0.5,
|
|
59
|
+
onRefresh: onRefresh,
|
|
60
|
+
refreshing: isRefetching,
|
|
61
|
+
ListEmptyComponent: emptyComponent,
|
|
62
|
+
ListFooterComponent: /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
63
|
+
visible: isFetchingNextPage,
|
|
64
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
65
|
+
style: styles.footer,
|
|
66
|
+
color: KColors.palette.primary.w400
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
const styles = StyleSheet.create({
|
|
72
|
+
content: {
|
|
73
|
+
padding: CONTAINER_PADDING,
|
|
74
|
+
gap: GRID_GAP
|
|
75
|
+
},
|
|
76
|
+
row: {
|
|
77
|
+
gap: GRID_GAP
|
|
78
|
+
},
|
|
79
|
+
footer: {
|
|
80
|
+
paddingVertical: KSpacingValue['1rem']
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=GridRenderer.js.map
|