@ethora/chat-component-rn 26.10.9 → 26.10.10
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/CHANGELOG.md +1 -0
- package/README.md +1 -1
- package/lib/commonjs/components/MainComponents/AlbumGrid.js +6 -2
- package/lib/commonjs/components/MainComponents/AlbumGrid.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +16 -11
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +13 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +7 -16
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +27 -1
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatMediaGrid.js +159 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatMediaGrid.js.map +1 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +203 -134
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/LeaveChatModal.js +180 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/LeaveChatModal.js.map +1 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +100 -162
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/MediaViewer.js +824 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/MediaViewer.js.map +1 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/useSaveFile.js +179 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/useSaveFile.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +22 -5
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -1
- package/lib/commonjs/components/styled/MessageImage.js +4 -1
- package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
- package/lib/commonjs/components/styled/VideoMessage.js +5 -1
- package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
- package/lib/commonjs/context/MediaSourceContext.js +18 -0
- package/lib/commonjs/context/MediaSourceContext.js.map +1 -0
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +3 -1
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js +2 -0
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/commonjs/helpers/publicChatsEntry.js +8 -6
- package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -1
- package/lib/commonjs/helpers/roomMedia.js +118 -0
- package/lib/commonjs/helpers/roomMedia.js.map +1 -0
- package/lib/commonjs/i18n/strings.js +36 -0
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +9 -13
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/MainComponents/AlbumGrid.js +6 -2
- package/lib/module/components/MainComponents/AlbumGrid.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +18 -13
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +13 -0
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +7 -16
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +27 -1
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatMediaGrid.js +154 -0
- package/lib/module/components/Modals/ChatProfileModal/ChatMediaGrid.js.map +1 -0
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +204 -136
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/LeaveChatModal.js +175 -0
- package/lib/module/components/Modals/ChatProfileModal/LeaveChatModal.js.map +1 -0
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +100 -163
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/MediaViewer.js +819 -0
- package/lib/module/components/Modals/FilePreviewModal/MediaViewer.js.map +1 -0
- package/lib/module/components/Modals/FilePreviewModal/useSaveFile.js +172 -0
- package/lib/module/components/Modals/FilePreviewModal/useSaveFile.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +20 -4
- package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -1
- package/lib/module/components/styled/MessageImage.js +4 -1
- package/lib/module/components/styled/MessageImage.js.map +1 -1
- package/lib/module/components/styled/VideoMessage.js +5 -1
- package/lib/module/components/styled/VideoMessage.js.map +1 -1
- package/lib/module/context/MediaSourceContext.js +13 -0
- package/lib/module/context/MediaSourceContext.js.map +1 -0
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js +2 -1
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/module/helpers/constants/MODAL_TYPES.js +2 -0
- package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/module/helpers/publicChatsEntry.js +8 -6
- package/lib/module/helpers/publicChatsEntry.js.map +1 -1
- package/lib/module/helpers/roomMedia.js +112 -0
- package/lib/module/helpers/roomMedia.js.map +1 -0
- package/lib/module/i18n/strings.js +36 -0
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +9 -13
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/components/MainComponents/AlbumGrid.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts +3 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatMediaGrid.d.ts +16 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ChatMediaGrid.d.ts.map +1 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/LeaveChatModal.d.ts +18 -0
- package/lib/typescript/components/Modals/ChatProfileModal/LeaveChatModal.d.ts.map +1 -0
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +16 -0
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/MediaViewer.d.ts +27 -0
- package/lib/typescript/components/Modals/FilePreviewModal/MediaViewer.d.ts.map +1 -0
- package/lib/typescript/components/Modals/FilePreviewModal/useSaveFile.d.ts +9 -0
- package/lib/typescript/components/Modals/FilePreviewModal/useSaveFile.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +8 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -1
- package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
- package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
- package/lib/typescript/context/MediaSourceContext.d.ts +4 -0
- package/lib/typescript/context/MediaSourceContext.d.ts.map +1 -0
- package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
- package/lib/typescript/helpers/publicChatsEntry.d.ts +7 -5
- package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -1
- package/lib/typescript/helpers/roomMedia.d.ts +26 -0
- package/lib/typescript/helpers/roomMedia.d.ts.map +1 -0
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +6 -5
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/types/models/modal.model.d.ts +18 -0
- package/lib/typescript/types/models/modal.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +18 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/lib/typescript/version.d.ts.map +1 -1
- package/package.json +9 -2
- package/src/components/MainComponents/AlbumGrid.tsx +5 -1
- package/src/components/MainComponents/ChatHeader.tsx +16 -11
- package/src/components/MainComponents/MediaMessage.tsx +13 -2
- package/src/components/MainComponents/RoomList.tsx +8 -19
- package/src/components/MessageBubble/Message.tsx +24 -1
- package/src/components/Modals/ChatProfileModal/ChatMediaGrid.tsx +174 -0
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +119 -48
- package/src/components/Modals/ChatProfileModal/LeaveChatModal.tsx +191 -0
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +115 -185
- package/src/components/Modals/FilePreviewModal/MediaViewer.tsx +880 -0
- package/src/components/Modals/FilePreviewModal/useSaveFile.ts +207 -0
- package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +56 -30
- package/src/components/styled/MessageImage.tsx +3 -1
- package/src/components/styled/VideoMessage.tsx +5 -1
- package/src/context/MediaSourceContext.tsx +14 -0
- package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -1
- package/src/helpers/constants/MODAL_TYPES.ts +2 -0
- package/src/helpers/publicChatsEntry.ts +8 -7
- package/src/helpers/roomMedia.ts +126 -0
- package/src/i18n/strings.ts +36 -0
- package/src/networking/api-requests/rooms.api.ts +13 -12
- package/src/types/models/modal.model.ts +16 -0
- package/src/types/types.ts +16 -0
- package/src/version.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { withFileToken } from '../../../helpers/secureFileUrl';
|
|
5
5
|
import { CenterContainer, ModalContainerFullScreen } from '../styledModalComponents';
|
|
6
6
|
import { SaveIcon } from '../../../assets/icons';
|
|
@@ -8,33 +8,36 @@ import ModalHeaderComponent from '../ModalHeaderComponent';
|
|
|
8
8
|
import { useChatSettingState } from '../../../hooks/useChatSettingState';
|
|
9
9
|
import { useTheme } from '../../../hooks/useTheme';
|
|
10
10
|
import { chatTextStyle } from '../../../helpers/typography';
|
|
11
|
-
import { useDispatch, useSelector } from 'react-redux';
|
|
11
|
+
import { useDispatch, useSelector, useStore } from 'react-redux';
|
|
12
12
|
import Button from '../../styled/Button';
|
|
13
13
|
import { FullScreenImage } from '../../styled/StyledInputComponents/MediaComponents';
|
|
14
14
|
import { setActiveFile } from '../../../roomStore/chatSettingsSlice';
|
|
15
|
-
import
|
|
15
|
+
import MediaViewer from './MediaViewer';
|
|
16
|
+
import { isLocalFile, useSaveFile } from './useSaveFile';
|
|
17
|
+
import { withChatSiblings } from '../../../helpers/roomMedia';
|
|
18
|
+
import { loadRoomHistory } from '../../../helpers/loadRoomHistory';
|
|
19
|
+
import { getGlobalXmppClient } from '../../../utils/clientRegistry';
|
|
20
|
+
import { useFileToken } from '../../../hooks/useFileToken';
|
|
21
|
+
import { ActivityIndicator, Text, View, Platform, TouchableOpacity, StyleSheet } from 'react-native';
|
|
16
22
|
import { useVideoPlayer, VideoView } from 'expo-video';
|
|
17
23
|
import { PlayIcon } from '../../../assets/icons';
|
|
18
|
-
import * as FileSystem from 'expo-file-system/legacy';
|
|
19
|
-
import { getMediaLibrary } from '../../../helpers/mediaLibraryRuntime';
|
|
20
|
-
import { useToast } from '../../../context/ToastContext';
|
|
21
24
|
import { useT } from '../../../i18n/useT';
|
|
22
25
|
import PdfViewer from './PdfView';
|
|
23
26
|
import DocumentViewer from './DocumentViewer';
|
|
24
27
|
import AudioMessage from '../../styled/AudioMessage';
|
|
25
28
|
import { isLikelyAudio } from '../../../helpers/mimeToExtension';
|
|
26
29
|
import { downloadVideoToCache, findCachedVideo, isRemoteUrl, isStreamingUnsupported, markStreamingUnsupported } from '../../../helpers/videoCache';
|
|
27
|
-
import { getDisplayFileName,
|
|
30
|
+
import { getDisplayFileName, sanitizeFileNameForPath } from '../../../helpers/getDisplayFileName';
|
|
28
31
|
|
|
29
32
|
// MIME types Google's gview embed renders reliably. Everything else
|
|
30
33
|
// falls through to the info-card so the user can still download.
|
|
31
34
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
32
35
|
const GVIEW_PREVIEWABLE = new Set(['application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'text/plain', 'text/csv', 'application/rtf']);
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const isMedia = mime => !!mime && (mime.startsWith('image/') || mime.startsWith('video/'));
|
|
37
|
+
|
|
38
|
+
/** Older history pages the viewer asked for; one at a time per room. */
|
|
39
|
+
const historyInFlight = new Set();
|
|
40
|
+
const HISTORY_PAGE_SIZE = 30;
|
|
38
41
|
const isGviewPreviewable = mime => {
|
|
39
42
|
if (!mime) {
|
|
40
43
|
return false;
|
|
@@ -227,13 +230,82 @@ const ModalVideo = ({
|
|
|
227
230
|
})]
|
|
228
231
|
});
|
|
229
232
|
};
|
|
233
|
+
/** The viewer on the store's `activeFile`, as opened from a message bubble. */
|
|
230
234
|
const FilePreviewModal = ({
|
|
231
235
|
handleCloseModal
|
|
232
236
|
}) => {
|
|
233
237
|
const dispatch = useDispatch();
|
|
238
|
+
const store = useStore();
|
|
234
239
|
const {
|
|
235
|
-
|
|
236
|
-
} =
|
|
240
|
+
activeFile
|
|
241
|
+
} = useSelector(state => state.chatSettingStore);
|
|
242
|
+
const {
|
|
243
|
+
user,
|
|
244
|
+
config
|
|
245
|
+
} = useChatSettingState();
|
|
246
|
+
const fileToken = useFileToken();
|
|
247
|
+
const roomJid = activeFile?.source?.roomJid;
|
|
248
|
+
const room = useSelector(state => roomJid ? state.rooms.rooms?.[roomJid] : undefined);
|
|
249
|
+
const messages = room?.messages;
|
|
250
|
+
|
|
251
|
+
// A picture or video opened from a bubble pages through the whole chat;
|
|
252
|
+
// anything not in the loaded history keeps what it was opened with.
|
|
253
|
+
const file = useMemo(() => {
|
|
254
|
+
if (!activeFile?.fileURL || !isMedia(activeFile.mimetype)) {
|
|
255
|
+
return activeFile;
|
|
256
|
+
}
|
|
257
|
+
return withChatSiblings(activeFile, messages, {
|
|
258
|
+
me: user,
|
|
259
|
+
fileToken,
|
|
260
|
+
interactive: !config?.disableInteractions,
|
|
261
|
+
repliesOn: !config?.disableReplies
|
|
262
|
+
}) ?? activeFile;
|
|
263
|
+
}, [activeFile, messages, user, fileToken, config?.disableInteractions, config?.disableReplies]);
|
|
264
|
+
|
|
265
|
+
// On the oldest loaded file, ask for an older page: what it brings in
|
|
266
|
+
// shows up to the left of it.
|
|
267
|
+
const atOldest = !!file?.siblings && file.index === 0 && !!roomJid;
|
|
268
|
+
const historyComplete = !!room?.historyComplete;
|
|
269
|
+
useEffect(() => {
|
|
270
|
+
if (!atOldest || historyComplete || !roomJid) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
loadRoomHistory({
|
|
274
|
+
client: getGlobalXmppClient(),
|
|
275
|
+
room: store.getState().rooms.rooms?.[roomJid],
|
|
276
|
+
inFlight: historyInFlight,
|
|
277
|
+
chatJID: roomJid,
|
|
278
|
+
max: HISTORY_PAGE_SIZE
|
|
279
|
+
});
|
|
280
|
+
}, [atOldest, historyComplete, roomJid, store]);
|
|
281
|
+
if (!file?.fileURL) {
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
const closeModal = () => {
|
|
285
|
+
dispatch(setActiveFile({
|
|
286
|
+
fileName: '',
|
|
287
|
+
fileURL: '',
|
|
288
|
+
mimetype: ''
|
|
289
|
+
}));
|
|
290
|
+
handleCloseModal?.();
|
|
291
|
+
};
|
|
292
|
+
return /*#__PURE__*/_jsx(FilePreview, {
|
|
293
|
+
file: file,
|
|
294
|
+
onClose: closeModal,
|
|
295
|
+
onChangeFile: next => dispatch(setActiveFile(next))
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* One file, full screen: pictures and videos in the Telegram-style
|
|
300
|
+
* MediaViewer, everything else (documents, PDFs, voice notes) on the
|
|
301
|
+
* plain preview page with the save button in its header.
|
|
302
|
+
*/
|
|
303
|
+
export const FilePreview = ({
|
|
304
|
+
file: activeFile,
|
|
305
|
+
onClose,
|
|
306
|
+
onChangeFile,
|
|
307
|
+
onReplyOpened
|
|
308
|
+
}) => {
|
|
237
309
|
const t = useT();
|
|
238
310
|
const {
|
|
239
311
|
config
|
|
@@ -243,16 +315,6 @@ const FilePreviewModal = ({
|
|
|
243
315
|
// dark sits them on the secondary surface.
|
|
244
316
|
const cardBackground = theme.dark ? theme.surfaceSecondary : '#FFF8ED';
|
|
245
317
|
|
|
246
|
-
// Cache the SAF directory the user granted so saving several documents
|
|
247
|
-
// in a row doesn't re-prompt for a folder every time (Android only).
|
|
248
|
-
const safDirUriRef = useRef(null);
|
|
249
|
-
const {
|
|
250
|
-
activeFile
|
|
251
|
-
} = useSelector(state => state.chatSettingStore);
|
|
252
|
-
if (!activeFile) {
|
|
253
|
-
return null;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
318
|
// Bug #40: prefer the sender's original name over the server's stored
|
|
257
319
|
// hash name everywhere this modal shows or saves/shares the file.
|
|
258
320
|
// Sanitized so it's safe to use as an actual path segment (strips path
|
|
@@ -263,135 +325,8 @@ const FilePreviewModal = ({
|
|
|
263
325
|
location: activeFile.fileURL,
|
|
264
326
|
mimetype: activeFile.mimetype
|
|
265
327
|
}));
|
|
266
|
-
const
|
|
267
|
-
|
|
268
|
-
if (!MediaLibrary?.requestPermissionsAsync) {
|
|
269
|
-
return false;
|
|
270
|
-
}
|
|
271
|
-
try {
|
|
272
|
-
const {
|
|
273
|
-
status
|
|
274
|
-
} = await MediaLibrary.requestPermissionsAsync();
|
|
275
|
-
return status === 'granted';
|
|
276
|
-
} catch (error) {
|
|
277
|
-
console.error('Error requesting permission:', error);
|
|
278
|
-
return false;
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
const saveToGallery = async () => {
|
|
282
|
-
const hasPermission = await requestStoragePermission();
|
|
283
|
-
if (!hasPermission) {
|
|
284
|
-
Alert.alert('Permission Denied', 'Storage permission is required to save files to the gallery.');
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
try {
|
|
288
|
-
const filePath = FileSystem.cacheDirectory + displayFileName;
|
|
289
|
-
const download = await fetchToCache(activeFile.fileURL, filePath);
|
|
290
|
-
if (download.status === 200) {
|
|
291
|
-
await getMediaLibrary()?.saveToLibraryAsync(download.uri);
|
|
292
|
-
showToast({
|
|
293
|
-
id: Date.now().toString(),
|
|
294
|
-
title: t('toast.successTitle'),
|
|
295
|
-
message: t('toast.saveSuccessful'),
|
|
296
|
-
type: 'success'
|
|
297
|
-
});
|
|
298
|
-
} else {
|
|
299
|
-
Alert.alert('Error', 'Failed to save the file.');
|
|
300
|
-
}
|
|
301
|
-
} catch (err) {
|
|
302
|
-
Alert.alert('Error', `Failed to save the file: ${displayFileName}`);
|
|
303
|
-
}
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
// Best-effort existing-name lookup for the Android SAF branch below: SAF
|
|
307
|
-
// hands back content URIs, not plain names, so this decodes each one and
|
|
308
|
-
// takes its last path segment. If the provider's URI shape doesn't match
|
|
309
|
-
// what we expect, we fail open (empty set) rather than block the save -
|
|
310
|
-
// worst case we skip de-duplication, we never crash the save flow.
|
|
311
|
-
const listSafDirectoryNames = async (saf, dirUri) => {
|
|
312
|
-
try {
|
|
313
|
-
const uris = await saf.readDirectoryAsync(dirUri);
|
|
314
|
-
const names = uris.map(uri => {
|
|
315
|
-
try {
|
|
316
|
-
const decoded = decodeURIComponent(uri);
|
|
317
|
-
const last = decoded.split('/').pop() || '';
|
|
318
|
-
return last.includes(':') ? last.split(':').pop() || '' : last;
|
|
319
|
-
} catch {
|
|
320
|
-
return '';
|
|
321
|
-
}
|
|
322
|
-
});
|
|
323
|
-
return new Set(names.filter(Boolean));
|
|
324
|
-
} catch {
|
|
325
|
-
return new Set();
|
|
326
|
-
}
|
|
327
|
-
};
|
|
328
|
-
const saveFileToDownloads = async () => {
|
|
329
|
-
try {
|
|
330
|
-
const filePath = FileSystem.cacheDirectory + displayFileName;
|
|
331
|
-
const download = await fetchToCache(activeFile.fileURL, filePath);
|
|
332
|
-
if (download.status !== 200) {
|
|
333
|
-
Alert.alert('Error', 'Failed to save the file.');
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
if (Platform.OS === 'android') {
|
|
337
|
-
const saf = FileSystem.StorageAccessFramework;
|
|
338
|
-
let dirUri = safDirUriRef.current;
|
|
339
|
-
if (!dirUri) {
|
|
340
|
-
const perm = await saf.requestDirectoryPermissionsAsync();
|
|
341
|
-
if (!perm.granted) {
|
|
342
|
-
Alert.alert('Permission Denied', 'Storage permission is required to save the file.');
|
|
343
|
-
return;
|
|
344
|
-
}
|
|
345
|
-
dirUri = perm.directoryUri;
|
|
346
|
-
safDirUriRef.current = dirUri;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
// Avoid silently overwriting a different attachment that happens
|
|
350
|
-
// to share the same display name (common now that we prefer the
|
|
351
|
-
// human-picked name over the unique server hash - bug #40) by
|
|
352
|
-
// suffixing " (1)", " (2)", ... on a collision.
|
|
353
|
-
const existingNames = await listSafDirectoryNames(saf, dirUri);
|
|
354
|
-
const uniqueName = await getUniqueFileName(displayFileName, async candidate => existingNames.has(candidate));
|
|
355
|
-
const baseName = uniqueName.replace(/\.[^/.]+$/, '');
|
|
356
|
-
const mime = activeFile.mimetype || 'application/octet-stream';
|
|
357
|
-
const base64 = await FileSystem.readAsStringAsync(download.uri, {
|
|
358
|
-
encoding: FileSystem.EncodingType.Base64
|
|
359
|
-
});
|
|
360
|
-
const destUri = await saf.createFileAsync(dirUri, baseName, mime);
|
|
361
|
-
await FileSystem.writeAsStringAsync(destUri, base64, {
|
|
362
|
-
encoding: FileSystem.EncodingType.Base64
|
|
363
|
-
});
|
|
364
|
-
showToast({
|
|
365
|
-
id: Date.now().toString(),
|
|
366
|
-
title: t('toast.successTitle'),
|
|
367
|
-
message: t('toast.saveSuccessful'),
|
|
368
|
-
type: 'success'
|
|
369
|
-
});
|
|
370
|
-
return;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
// iOS (and any non-Android): there is no app-writable "Downloads"
|
|
374
|
-
// folder, and MediaLibrary only accepts images/videos — which is why
|
|
375
|
-
// documents previously hit the success toast without ever being
|
|
376
|
-
// saved. Present the system share sheet so the user can "Save to
|
|
377
|
-
// Files", AirDrop, etc. The sheet itself is the confirmation (the
|
|
378
|
-
// user may cancel), so we don't show a "Save successful" toast here.
|
|
379
|
-
await Share.share({
|
|
380
|
-
url: download.uri,
|
|
381
|
-
title: displayFileName
|
|
382
|
-
});
|
|
383
|
-
} catch (err) {
|
|
384
|
-
console.error('Error saving file:', err);
|
|
385
|
-
Alert.alert('Error', 'Failed to save the file.');
|
|
386
|
-
}
|
|
387
|
-
};
|
|
388
|
-
const saveClick = async () => {
|
|
389
|
-
if (activeFile.mimetype.startsWith('image/') || activeFile.mimetype.startsWith('video/')) {
|
|
390
|
-
await saveToGallery();
|
|
391
|
-
} else {
|
|
392
|
-
await saveFileToDownloads();
|
|
393
|
-
}
|
|
394
|
-
};
|
|
328
|
+
const saveFile = useSaveFile();
|
|
329
|
+
const saveClick = () => saveFile(activeFile);
|
|
395
330
|
|
|
396
331
|
// An album opens with its siblings; the viewer pages through them.
|
|
397
332
|
const albumSize = activeFile.siblings?.length ?? 0;
|
|
@@ -401,20 +336,22 @@ const FilePreviewModal = ({
|
|
|
401
336
|
if (!target) {
|
|
402
337
|
return;
|
|
403
338
|
}
|
|
404
|
-
|
|
339
|
+
onChangeFile({
|
|
405
340
|
...target,
|
|
406
341
|
siblings: activeFile.siblings,
|
|
407
342
|
index: next
|
|
408
|
-
})
|
|
409
|
-
};
|
|
410
|
-
const closeModal = () => {
|
|
411
|
-
dispatch(setActiveFile({
|
|
412
|
-
fileName: '',
|
|
413
|
-
fileURL: '',
|
|
414
|
-
mimetype: ''
|
|
415
|
-
}));
|
|
416
|
-
handleCloseModal?.();
|
|
343
|
+
});
|
|
417
344
|
};
|
|
345
|
+
const closeModal = onClose;
|
|
346
|
+
if (activeFile.mimetype.startsWith('image/') || activeFile.mimetype.startsWith('video/')) {
|
|
347
|
+
return /*#__PURE__*/_jsx(MediaViewer, {
|
|
348
|
+
file: activeFile,
|
|
349
|
+
onClose: onClose,
|
|
350
|
+
onPage: goToSibling,
|
|
351
|
+
onSave: saveClick,
|
|
352
|
+
onReplyOpened: onReplyOpened
|
|
353
|
+
});
|
|
354
|
+
}
|
|
418
355
|
|
|
419
356
|
// NOTE: plain computed value, NOT useMemo. It sits AFTER the
|
|
420
357
|
// `if (!activeFile) return` guard above, so as a hook it would run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useRef","useState","withFileToken","CenterContainer","ModalContainerFullScreen","SaveIcon","ModalHeaderComponent","useChatSettingState","useTheme","chatTextStyle","useDispatch","useSelector","Button","FullScreenImage","setActiveFile","ActivityIndicator","Alert","Text","View","Platform","TouchableOpacity","StyleSheet","Share","useVideoPlayer","VideoView","PlayIcon","FileSystem","getMediaLibrary","useToast","useT","PdfViewer","DocumentViewer","AudioMessage","isLikelyAudio","downloadVideoToCache","findCachedVideo","isRemoteUrl","isStreamingUnsupported","markStreamingUnsupported","getDisplayFileName","getUniqueFileName","sanitizeFileNameForPath","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GVIEW_PREVIEWABLE","Set","isLocalFile","url","test","fetchToCache","cachePath","status","uri","downloadAsync","isGviewPreviewable","mime","has","toLowerCase","split","trim","ModalVideo","mimetype","theme","remote","source","setSource","showPlay","setShowPlay","progress","setProgress","failed","setFailed","wantsPlay","downloadStarted","mounted","current","download","fraction","then","localUri","catch","err","console","warn","active","cached","player","p","muted","play","playing","addListener","isPlaying","event","remove","handlePlay","style","styles","videoMessage","children","fontSize","fontWeight","color","text","textSecondary","textAlign","loading","flex","width","backgroundColor","contentFit","nativeControls","surfaceType","playOverlay","pointerEvents","playButton","Math","round","activeOpacity","onPress","absoluteFill","height","FilePreviewModal","handleCloseModal","dispatch","showToast","t","config","cardBackground","dark","surfaceSecondary","safDirUriRef","activeFile","state","chatSettingStore","displayFileName","originalName","fileName","location","fileURL","requestStoragePermission","MediaLibrary","requestPermissionsAsync","error","saveToGallery","hasPermission","alert","filePath","cacheDirectory","saveToLibraryAsync","id","Date","now","toString","title","message","type","listSafDirectoryNames","saf","dirUri","uris","readDirectoryAsync","names","map","decoded","decodeURIComponent","last","pop","includes","filter","Boolean","saveFileToDownloads","OS","StorageAccessFramework","perm","requestDirectoryPermissionsAsync","granted","directoryUri","existingNames","uniqueName","candidate","baseName","replace","base64","readAsStringAsync","encoding","EncodingType","Base64","destUri","createFileAsync","writeAsStringAsync","share","saveClick","startsWith","albumSize","siblings","length","albumIndex","index","goToSibling","next","target","closeModal","getMediaComponent","resizeMode","accessibilityLabel","padding","gap","borderRadius","src","mimeType","duration","waveForm","pdfUrl","marginTop","headerTitle","titleStyle","typography","profile","screenTitle","rightMenu","display","justifyContent","overflow","paddingBottom","albumNav","testID","accessibilityRole","disabled","hitSlop","albumArrow","albumArrowOff","albumArrowText","total","create","alignItems","flexDirection","opacity","lineHeight"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/FilePreviewModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","withFileToken","CenterContainer","ModalContainerFullScreen","SaveIcon","ModalHeaderComponent","useChatSettingState","useTheme","chatTextStyle","useDispatch","useSelector","useStore","Button","FullScreenImage","setActiveFile","MediaViewer","isLocalFile","useSaveFile","withChatSiblings","loadRoomHistory","getGlobalXmppClient","useFileToken","ActivityIndicator","Text","View","Platform","TouchableOpacity","StyleSheet","useVideoPlayer","VideoView","PlayIcon","useT","PdfViewer","DocumentViewer","AudioMessage","isLikelyAudio","downloadVideoToCache","findCachedVideo","isRemoteUrl","isStreamingUnsupported","markStreamingUnsupported","getDisplayFileName","sanitizeFileNameForPath","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GVIEW_PREVIEWABLE","Set","isMedia","mime","startsWith","historyInFlight","HISTORY_PAGE_SIZE","isGviewPreviewable","has","toLowerCase","split","trim","ModalVideo","uri","mimetype","theme","remote","source","setSource","showPlay","setShowPlay","progress","setProgress","failed","setFailed","wantsPlay","downloadStarted","mounted","current","download","fraction","then","localUri","catch","err","console","warn","active","cached","player","p","muted","play","playing","addListener","isPlaying","status","event","remove","handlePlay","style","styles","videoMessage","children","fontSize","fontWeight","color","text","textSecondary","textAlign","loading","flex","width","backgroundColor","contentFit","nativeControls","surfaceType","playOverlay","pointerEvents","playButton","Math","round","activeOpacity","onPress","absoluteFill","height","FilePreviewModal","handleCloseModal","dispatch","store","activeFile","state","chatSettingStore","user","config","fileToken","roomJid","room","rooms","undefined","messages","file","fileURL","me","interactive","disableInteractions","repliesOn","disableReplies","atOldest","siblings","index","historyComplete","client","getState","inFlight","chatJID","max","closeModal","fileName","FilePreview","onClose","onChangeFile","next","onReplyOpened","t","cardBackground","dark","surfaceSecondary","displayFileName","originalName","location","saveFile","saveClick","albumSize","length","albumIndex","goToSibling","target","onPage","onSave","getMediaComponent","resizeMode","accessibilityLabel","includes","padding","gap","borderRadius","src","mimeType","duration","waveForm","OS","pdfUrl","url","marginTop","headerTitle","titleStyle","typography","profile","screenTitle","rightMenu","display","justifyContent","overflow","paddingBottom","albumNav","testID","accessibilityRole","disabled","hitSlop","albumArrow","albumArrowOff","albumArrowText","total","create","alignItems","flexDirection","opacity","lineHeight"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/FilePreviewModal.tsx"],"mappings":"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","ignoreList":[]}
|