diff --git a/src/api/gramjs/apiBuilders/messageContent.ts b/src/api/gramjs/apiBuilders/messageContent.ts index 11b0e83e3..82f3d1d26 100644 --- a/src/api/gramjs/apiBuilders/messageContent.ts +++ b/src/api/gramjs/apiBuilders/messageContent.ts @@ -454,6 +454,7 @@ export function buildApiDocument(document: GramJs.TypeDocument): ApiDocument | u mediaSize = { width, height, + fromDocumentAttribute: true, }; } } else if (SUPPORTED_VIDEO_CONTENT_TYPES.has(mimeType)) { diff --git a/src/api/types/messages.ts b/src/api/types/messages.ts index 8e1ce1cfe..c8da1d487 100644 --- a/src/api/types/messages.ts +++ b/src/api/types/messages.ts @@ -153,7 +153,7 @@ export interface ApiDocument { previewPhotoSizes?: ApiPhotoSize[]; previewBlobUrl?: string; innerMediaType?: 'photo' | 'video'; - mediaSize?: ApiDimensions; + mediaSize?: ApiDimensions & { fromDocumentAttribute?: boolean }; } export interface ApiContact { diff --git a/src/components/common/Document.tsx b/src/components/common/Document.tsx index 871323aad..7c91102cf 100644 --- a/src/components/common/Document.tsx +++ b/src/components/common/Document.tsx @@ -119,7 +119,9 @@ const Document = ({ const localBlobUrl = hasPreview ? document.previewBlobUrl : undefined; const previewData = useMedia(getDocumentMediaHash(document, 'pictogram'), !isIntersecting); - const withMediaViewer = onMediaClick && document.innerMediaType; + const shouldForceDownload = document.innerMediaType === 'photo' && !document.mediaSize?.fromDocumentAttribute; + + const withMediaViewer = onMediaClick && document.innerMediaType && !shouldForceDownload; const handleDownload = useLastCallback(() => { downloadMedia({ media: document, originMessage: message });