38 lines
872 B
TypeScript
38 lines
872 B
TypeScript
// Copyright 2024 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import type { MessageAttributesType } from '../model-types';
|
|
import * as GoogleChrome from './GoogleChrome';
|
|
|
|
export function isValidTapToView(message: MessageAttributesType): boolean {
|
|
const { body } = message;
|
|
if (body) {
|
|
return false;
|
|
}
|
|
|
|
const { attachments } = message;
|
|
if (!attachments || attachments.length !== 1) {
|
|
return false;
|
|
}
|
|
|
|
const firstAttachment = attachments[0];
|
|
if (
|
|
!GoogleChrome.isImageTypeSupported(firstAttachment.contentType) &&
|
|
!GoogleChrome.isVideoTypeSupported(firstAttachment.contentType)
|
|
) {
|
|
return false;
|
|
}
|
|
|
|
const { quote, sticker, contact, preview } = message;
|
|
|
|
if (
|
|
quote ||
|
|
sticker ||
|
|
(contact && contact.length > 0) ||
|
|
(preview && preview.length > 0)
|
|
) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|