Page MenuHomePhorge

D14426.1768781304.diff
No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None

D14426.1768781304.diff

diff --git a/native/media/image-modal.react.js b/native/media/image-modal.react.js
--- a/native/media/image-modal.react.js
+++ b/native/media/image-modal.react.js
@@ -6,7 +6,11 @@
import type { MediaInfo, Dimensions } from 'lib/types/media-types.js';
import Multimedia from './multimedia.react.js';
-import { useIntentionalSaveMedia, copyMediaIOS } from './save-media.js';
+import {
+ useIntentionalSaveMedia,
+ type IntentionalSaveMediaIDs,
+ copyMediaIOS,
+} from './save-media.js';
import FullScreenViewModal from '../components/full-screen-view-modal.react.js';
import { displayActionResultModal } from '../navigation/action-result-modal.js';
import type { AppNavigationProp } from '../navigation/app-navigator.react.js';
@@ -24,7 +28,7 @@
+mediaInfo: MediaInfo,
+initialCoordinates: LayoutCoordinates,
+verticalBounds: VerticalBounds,
- +item: ChatMultimediaMessageInfoItem,
+ +item?: ?ChatMultimediaMessageInfoItem,
};
type Props = {
@@ -40,12 +44,16 @@
const intentionalSaveMedia = useIntentionalSaveMedia();
+ const messageInfo = item?.messageInfo;
const onPressSave = React.useCallback(() => {
const uploadID = mediaInfo.id;
- const { id: messageServerID, localID: messageLocalID } = item.messageInfo;
- const ids = { uploadID, messageServerID, messageLocalID };
+ let ids: ?IntentionalSaveMediaIDs;
+ if (messageInfo) {
+ const { id: messageServerID, localID: messageLocalID } = messageInfo;
+ ids = { uploadID, messageServerID, messageLocalID };
+ }
return intentionalSaveMedia(mediaInfo, ids);
- }, [intentionalSaveMedia, item.messageInfo, mediaInfo]);
+ }, [intentionalSaveMedia, messageInfo, mediaInfo]);
const onPressCopyIOS = React.useCallback(async () => {
const { success } = await copyMediaIOS(mediaInfo);
diff --git a/native/media/save-media.js b/native/media/save-media.js
--- a/native/media/save-media.js
+++ b/native/media/save-media.js
@@ -48,13 +48,15 @@
import { displayActionResultModal } from '../navigation/action-result-modal.js';
import { requestAndroidPermission } from '../utils/android-permissions.js';
+export type IntentionalSaveMediaIDs = {
+ +uploadID?: ?string,
+ +messageServerID?: ?string,
+ +messageLocalID?: ?string,
+};
+
export type IntentionalSaveMedia = (
mediaInfo: MediaInfo,
- ids: {
- uploadID: string,
- messageServerID: ?string,
- messageLocalID: ?string,
- },
+ ids?: ?IntentionalSaveMediaIDs,
) => Promise<void>;
function useIntentionalSaveMedia(): IntentionalSaveMedia {
@@ -62,14 +64,7 @@
const mediaReportsEnabled = useIsReportEnabled('mediaReports');
const invalidTokenLogOut = useInvalidCSATLogOut();
return React.useCallback(
- async (
- mediaInfo: MediaInfo,
- ids: {
- uploadID: string,
- messageServerID: ?string,
- messageLocalID: ?string,
- },
- ) => {
+ async (mediaInfo: MediaInfo, ids?: ?IntentionalSaveMediaIDs) => {
const start = Date.now();
const { uri: mediaURI, blobURI, holder, encryptionKey } = mediaInfo;
const uri = mediaURI ?? blobURI ?? holder;
@@ -122,8 +117,11 @@
const totalTime = Date.now() - start;
const mediaMission = { steps, result, userTime, totalTime };
- const { uploadID, messageServerID, messageLocalID } = ids;
- const uploadIDIsLocal = isLocalUploadID(uploadID);
+ const uploadID = ids?.uploadID;
+ const messageServerID = ids?.messageServerID;
+ const messageLocalID = ids?.messageLocalID;
+
+ const uploadIDIsLocal = uploadID ? isLocalUploadID(uploadID) : false;
const report: ClientMediaMissionReportCreationRequest = {
type: reportTypes.MEDIA_MISSION,
time: Date.now(),
diff --git a/native/media/video-playback-modal.react.js b/native/media/video-playback-modal.react.js
--- a/native/media/video-playback-modal.react.js
+++ b/native/media/video-playback-modal.react.js
@@ -57,7 +57,7 @@
+mediaInfo: MediaInfo,
+initialCoordinates: LayoutCoordinates,
+verticalBounds: VerticalBounds,
- +item: ChatMultimediaMessageInfoItem,
+ +item?: ?ChatMultimediaMessageInfoItem,
};
type ReactNativeVideoOnProgressData = {

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 19, 12:08 AM (1 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5953549
Default Alt Text
D14426.1768781304.diff (4 KB)

Event Timeline