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;
 | 
						|
}
 |