Generalize keepMutedChatsArchived check
This commit is contained in:
parent
f3b68677b3
commit
dff924c0c5
3 changed files with 27 additions and 7 deletions
|
@ -71,6 +71,7 @@ import {
|
||||||
import { missingCaseError } from '../util/missingCaseError';
|
import { missingCaseError } from '../util/missingCaseError';
|
||||||
import { sniffImageMimeType } from '../util/sniffImageMimeType';
|
import { sniffImageMimeType } from '../util/sniffImageMimeType';
|
||||||
import { isValidE164 } from '../util/isValidE164';
|
import { isValidE164 } from '../util/isValidE164';
|
||||||
|
import { canConversationBeUnarchived } from '../util/canConversationBeUnarchived';
|
||||||
import type { MIMEType } from '../types/MIME';
|
import type { MIMEType } from '../types/MIME';
|
||||||
import { IMAGE_JPEG, IMAGE_GIF, IMAGE_WEBP } from '../types/MIME';
|
import { IMAGE_JPEG, IMAGE_GIF, IMAGE_WEBP } from '../types/MIME';
|
||||||
import { UUID, UUIDKind } from '../types/UUID';
|
import { UUID, UUIDKind } from '../types/UUID';
|
||||||
|
@ -3274,7 +3275,7 @@ export class ConversationModel extends window.Backbone
|
||||||
this.trigger('newmessage', model);
|
this.trigger('newmessage', model);
|
||||||
void this.updateUnread();
|
void this.updateUnread();
|
||||||
|
|
||||||
if (this.get('isArchived')) {
|
if (canConversationBeUnarchived(this.attributes)) {
|
||||||
this.setArchived(false);
|
this.setArchived(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,6 +90,7 @@ import {
|
||||||
import { handleMessageSend } from '../util/handleMessageSend';
|
import { handleMessageSend } from '../util/handleMessageSend';
|
||||||
import { getSendOptions } from '../util/getSendOptions';
|
import { getSendOptions } from '../util/getSendOptions';
|
||||||
import { findAndFormatContact } from '../util/findAndFormatContact';
|
import { findAndFormatContact } from '../util/findAndFormatContact';
|
||||||
|
import { canConversationBeUnarchived } from '../util/canConversationBeUnarchived';
|
||||||
import {
|
import {
|
||||||
getAttachmentsForMessage,
|
getAttachmentsForMessage,
|
||||||
getMessagePropStatus,
|
getMessagePropStatus,
|
||||||
|
@ -3167,11 +3168,6 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
||||||
const isGroupStoryReply =
|
const isGroupStoryReply =
|
||||||
isGroup(conversation.attributes) && message.get('storyId');
|
isGroup(conversation.attributes) && message.get('storyId');
|
||||||
|
|
||||||
const keepMutedChatsArchived =
|
|
||||||
window.storage.get('keepMutedChatsArchived') ?? false;
|
|
||||||
const keepThisConversationArchived =
|
|
||||||
keepMutedChatsArchived && conversation.isMuted();
|
|
||||||
|
|
||||||
if (readSyncs.length !== 0 || viewSyncs.length !== 0) {
|
if (readSyncs.length !== 0 || viewSyncs.length !== 0) {
|
||||||
const markReadAt = Math.min(
|
const markReadAt = Math.min(
|
||||||
Date.now(),
|
Date.now(),
|
||||||
|
@ -3214,7 +3210,7 @@ export class MessageModel extends window.Backbone.Model<MessageAttributesType> {
|
||||||
} else if (
|
} else if (
|
||||||
isFirstRun &&
|
isFirstRun &&
|
||||||
!isGroupStoryReply &&
|
!isGroupStoryReply &&
|
||||||
!keepThisConversationArchived
|
canConversationBeUnarchived(conversation.attributes)
|
||||||
) {
|
) {
|
||||||
conversation.setArchived(false);
|
conversation.setArchived(false);
|
||||||
}
|
}
|
||||||
|
|
23
ts/util/canConversationBeUnarchived.ts
Normal file
23
ts/util/canConversationBeUnarchived.ts
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// Copyright 2023 Signal Messenger, LLC
|
||||||
|
// SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
|
import type { ConversationAttributesType } from '../model-types.d';
|
||||||
|
import { isConversationMuted } from './isConversationMuted';
|
||||||
|
|
||||||
|
export function canConversationBeUnarchived(
|
||||||
|
attrs: ConversationAttributesType
|
||||||
|
): boolean {
|
||||||
|
if (!attrs.isArchived) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isConversationMuted(attrs)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.storage.get('keepMutedChatsArchived') ?? false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
Loading…
Reference in a new issue