Skip to content

Commit 9ee49cb

Browse files
Prevent editing or forwarding polls
1 parent 6869245 commit 9ee49cb

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

ts/messages/helpers.std.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,9 @@ export const shouldTryToCopyFromQuotedMessage = ({
7676

7777
return true;
7878
};
79+
80+
export function isPoll(
81+
message: Pick<ReadonlyMessageAttributesType, 'poll'>
82+
): boolean {
83+
return Boolean(message.poll);
84+
}

ts/state/selectors/message.preload.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,12 @@ import { getConversationColorAttributes } from '../../util/getConversationColorA
137137
import { DAY, DurationInSeconds } from '../../util/durations/index.std.js';
138138
import { getStoryReplyText } from '../../util/getStoryReplyText.std.js';
139139
import type { MessageAttributesWithPaymentEvent } from '../../messages/payments.std.js';
140-
import { isIncoming, isOutgoing, isStory } from '../../messages/helpers.std.js';
140+
import {
141+
isIncoming,
142+
isOutgoing,
143+
isPoll,
144+
isStory,
145+
} from '../../messages/helpers.std.js';
141146
import { messageHasPaymentEvent } from '../../messages/payments.std.js';
142147

143148
import { calculateExpirationTimestamp } from '../../util/expirationTimer.std.js';
@@ -2245,7 +2250,8 @@ export function canForward(message: ReadonlyMessageAttributesType): boolean {
22452250
!isTapToView(message) &&
22462251
!message.deletedForEveryone &&
22472252
!message.giftBadge &&
2248-
!getPayment(message)
2253+
!getPayment(message) &&
2254+
!isPoll(message)
22492255
);
22502256
}
22512257

ts/util/canEditMessage.dom.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import type { ReadonlyMessageAttributesType } from '../model-types.d.ts';
55
import { DAY } from './durations/index.std.js';
66
import { isMoreRecentThan } from './timestamp.std.js';
7-
import { isOutgoing } from '../messages/helpers.std.js';
7+
import { isOutgoing, isPoll } from '../messages/helpers.std.js';
88
import { isMessageNoteToSelf } from './isMessageNoteToSelf.dom.js';
99

1010
export const MESSAGE_MAX_EDIT_COUNT = 10;
@@ -16,6 +16,7 @@ export function canEditMessage(
1616
!message.sms &&
1717
!message.deletedForEveryone &&
1818
isOutgoing(message) &&
19+
!isPoll(message) &&
1920
(isMoreRecentThan(message.sent_at, DAY) || isMessageNoteToSelf(message)) &&
2021
Boolean(message.body)
2122
);

0 commit comments

Comments
 (0)