From d42df4b201dfe635f87d76d5a3bb932fc3e4a45d Mon Sep 17 00:00:00 2001 From: yash-signal Date: Fri, 11 Oct 2024 11:30:10 -0500 Subject: [PATCH] Remove 10-edit limit for note to self --- ts/util/canEditMessage.ts | 31 ++++++++++--------------------- ts/util/handleEditMessage.ts | 7 +++---- ts/util/isMessageNoteToSelf.ts | 13 +++++++++++++ 3 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 ts/util/isMessageNoteToSelf.ts diff --git a/ts/util/canEditMessage.ts b/ts/util/canEditMessage.ts index b6ecd5e2d..51476c4e2 100644 --- a/ts/util/canEditMessage.ts +++ b/ts/util/canEditMessage.ts @@ -5,38 +5,27 @@ import type { ReadonlyMessageAttributesType } from '../model-types.d'; import { DAY } from './durations'; import { isMoreRecentThan } from './timestamp'; import { isOutgoing } from '../messages/helpers'; +import { isMessageNoteToSelf } from './isMessageNoteToSelf'; export const MESSAGE_MAX_EDIT_COUNT = 10; export function canEditMessage( message: ReadonlyMessageAttributesType ): boolean { - if (message.sms) { - return false; - } - - const result = + return ( + !message.sms && !message.deletedForEveryone && isOutgoing(message) && - isMoreRecentThan(message.sent_at, DAY) && - Boolean(message.body); - - if (result) { - return true; - } - - if ( - message.conversationId === - window.ConversationController.getOurConversationId() - ) { - return !message.deletedForEveryone && Boolean(message.body); - } - - return false; + (isMoreRecentThan(message.sent_at, DAY) || isMessageNoteToSelf(message)) && + Boolean(message.body) + ); } export function isWithinMaxEdits( message: ReadonlyMessageAttributesType ): boolean { - return (message.editHistory?.length ?? 0) <= MESSAGE_MAX_EDIT_COUNT; + return ( + isMessageNoteToSelf(message) || + (message.editHistory?.length ?? 0) <= MESSAGE_MAX_EDIT_COUNT + ); } diff --git a/ts/util/handleEditMessage.ts b/ts/util/handleEditMessage.ts index 4bd6acb83..97e383eaa 100644 --- a/ts/util/handleEditMessage.ts +++ b/ts/util/handleEditMessage.ts @@ -24,6 +24,7 @@ import { isDirectConversation } from './whatTypeOfConversation'; import { isTooOldToModifyMessage } from './isTooOldToModifyMessage'; import { queueAttachmentDownloads } from './queueAttachmentDownloads'; import { modifyTargetMessage } from './modifyTargetMessage'; +import { isMessageNoteToSelf } from './isMessageNoteToSelf'; const RECURSION_LIMIT = 15; @@ -92,12 +93,10 @@ export async function handleEditMessage( } const { serverTimestamp } = editAttributes.message; - const isNoteToSelf = - mainMessage.conversationId === - window.ConversationController.getOurConversationId(); + if ( serverTimestamp && - !isNoteToSelf && + !isMessageNoteToSelf(mainMessage) && isTooOldToModifyMessage(serverTimestamp, mainMessage) ) { log.warn(`${idLog}: cannot edit message older than 48h`, serverTimestamp); diff --git a/ts/util/isMessageNoteToSelf.ts b/ts/util/isMessageNoteToSelf.ts new file mode 100644 index 000000000..4dc72f659 --- /dev/null +++ b/ts/util/isMessageNoteToSelf.ts @@ -0,0 +1,13 @@ +// Copyright 2024 Signal Messenger, LLC +// SPDX-License-Identifier: AGPL-3.0-only + +import type { ReadonlyMessageAttributesType } from '../model-types.d'; + +export function isMessageNoteToSelf( + message: Pick +): boolean { + return ( + message.conversationId === + window.ConversationController.getOurConversationId() + ); +}