// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only /** * `ReadStatus` represents your local read/viewed status of a single incoming message. * Messages go from Unread to Read to Viewed; they never go "backwards". * * Note that a conversation can be marked unread, which is not at the message level. * * Be careful when changing these values, as they are persisted. Notably, we previously * had a field called "unread", which is why Unread corresponds to 1 and Read to 0. */ export enum ReadStatus { Unread = 1, Read = 0, Viewed = 2, } const STATUS_NUMBERS: Record = { [ReadStatus.Unread]: 0, [ReadStatus.Read]: 1, [ReadStatus.Viewed]: 2, }; export const maxReadStatus = (a: ReadStatus, b: ReadStatus): ReadStatus => STATUS_NUMBERS[a] > STATUS_NUMBERS[b] ? a : b;