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