Remove 10-edit limit for note to self

This commit is contained in:
yash-signal 2024-10-11 11:30:10 -05:00 committed by GitHub
parent f3aae86796
commit d42df4b201
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 25 deletions

View file

@ -5,38 +5,27 @@ import type { ReadonlyMessageAttributesType } from '../model-types.d';
import { DAY } from './durations'; import { DAY } from './durations';
import { isMoreRecentThan } from './timestamp'; import { isMoreRecentThan } from './timestamp';
import { isOutgoing } from '../messages/helpers'; import { isOutgoing } from '../messages/helpers';
import { isMessageNoteToSelf } from './isMessageNoteToSelf';
export const MESSAGE_MAX_EDIT_COUNT = 10; export const MESSAGE_MAX_EDIT_COUNT = 10;
export function canEditMessage( export function canEditMessage(
message: ReadonlyMessageAttributesType message: ReadonlyMessageAttributesType
): boolean { ): boolean {
if (message.sms) { return (
return false; !message.sms &&
}
const result =
!message.deletedForEveryone && !message.deletedForEveryone &&
isOutgoing(message) && isOutgoing(message) &&
isMoreRecentThan(message.sent_at, DAY) && (isMoreRecentThan(message.sent_at, DAY) || isMessageNoteToSelf(message)) &&
Boolean(message.body); Boolean(message.body)
);
if (result) {
return true;
}
if (
message.conversationId ===
window.ConversationController.getOurConversationId()
) {
return !message.deletedForEveryone && Boolean(message.body);
}
return false;
} }
export function isWithinMaxEdits( export function isWithinMaxEdits(
message: ReadonlyMessageAttributesType message: ReadonlyMessageAttributesType
): boolean { ): boolean {
return (message.editHistory?.length ?? 0) <= MESSAGE_MAX_EDIT_COUNT; return (
isMessageNoteToSelf(message) ||
(message.editHistory?.length ?? 0) <= MESSAGE_MAX_EDIT_COUNT
);
} }

View file

@ -24,6 +24,7 @@ import { isDirectConversation } from './whatTypeOfConversation';
import { isTooOldToModifyMessage } from './isTooOldToModifyMessage'; import { isTooOldToModifyMessage } from './isTooOldToModifyMessage';
import { queueAttachmentDownloads } from './queueAttachmentDownloads'; import { queueAttachmentDownloads } from './queueAttachmentDownloads';
import { modifyTargetMessage } from './modifyTargetMessage'; import { modifyTargetMessage } from './modifyTargetMessage';
import { isMessageNoteToSelf } from './isMessageNoteToSelf';
const RECURSION_LIMIT = 15; const RECURSION_LIMIT = 15;
@ -92,12 +93,10 @@ export async function handleEditMessage(
} }
const { serverTimestamp } = editAttributes.message; const { serverTimestamp } = editAttributes.message;
const isNoteToSelf =
mainMessage.conversationId ===
window.ConversationController.getOurConversationId();
if ( if (
serverTimestamp && serverTimestamp &&
!isNoteToSelf && !isMessageNoteToSelf(mainMessage) &&
isTooOldToModifyMessage(serverTimestamp, mainMessage) isTooOldToModifyMessage(serverTimestamp, mainMessage)
) { ) {
log.warn(`${idLog}: cannot edit message older than 48h`, serverTimestamp); log.warn(`${idLog}: cannot edit message older than 48h`, serverTimestamp);

View file

@ -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<ReadonlyMessageAttributesType, 'conversationId'>
): boolean {
return (
message.conversationId ===
window.ConversationController.getOurConversationId()
);
}