26 lines
		
	
	
	
		
			834 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			26 lines
		
	
	
	
		
			834 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | // Copyright 2021 Signal Messenger, LLC
 | ||
|  | // SPDX-License-Identifier: AGPL-3.0-only
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * `SeenStatus` represents either the idea that a message doesn't need to track its seen | ||
|  |  * status, or the standard unseen/seen status pair. | ||
|  |  * | ||
|  |  * Unseen is a lot like unread - except that unseen messages only affect the placement | ||
|  |  * of the last seen indicator and the count it shows. Unread messages will affect the | ||
|  |  * left pane badging for conversations, as well as the overall badge count on the app. | ||
|  |  */ | ||
|  | export enum SeenStatus { | ||
|  |   NotApplicable = 0, | ||
|  |   Unseen = 1, | ||
|  |   Seen = 2, | ||
|  | } | ||
|  | 
 | ||
|  | const STATUS_NUMBERS: Record<SeenStatus, number> = { | ||
|  |   [SeenStatus.NotApplicable]: 0, | ||
|  |   [SeenStatus.Unseen]: 1, | ||
|  |   [SeenStatus.Seen]: 2, | ||
|  | }; | ||
|  | 
 | ||
|  | export const maxSeenStatus = (a: SeenStatus, b: SeenStatus): SeenStatus => | ||
|  |   STATUS_NUMBERS[a] > STATUS_NUMBERS[b] ? a : b; |