mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2025-12-26 05:08:06 +00:00
Expire poll terminate chat events
This commit is contained in:
@@ -23,6 +23,7 @@ import { strictAssert } from '../util/assert.std.js';
|
||||
import { getMessageIdForLogging } from '../util/idForLogging.preload.js';
|
||||
import { drop } from '../util/drop.std.js';
|
||||
import { maybeNotify } from '../messages/maybeNotify.preload.js';
|
||||
import type { DurationInSeconds } from '../util/durations/duration-in-seconds.std.js';
|
||||
|
||||
const log = createLogger('Polls');
|
||||
|
||||
@@ -53,6 +54,8 @@ export type PollTerminateAttributesType = {
|
||||
targetTimestamp: number;
|
||||
timestamp: number;
|
||||
receivedAtDate: number;
|
||||
expireTimer: DurationInSeconds | undefined;
|
||||
expirationStartTimestamp: number | undefined;
|
||||
};
|
||||
|
||||
const pollVoteCache = new Map<string, PollVoteAttributesType>();
|
||||
@@ -578,6 +581,8 @@ export async function handlePollTerminate(
|
||||
terminatorId: terminate.fromConversationId,
|
||||
timestamp: terminate.timestamp,
|
||||
isMeTerminating: isMe(author.attributes),
|
||||
expireTimer: terminate.expireTimer,
|
||||
expirationStartTimestamp: terminate.expirationStartTimestamp,
|
||||
});
|
||||
|
||||
window.reduxActions.conversations.markOpenConversationRead(conversation.id);
|
||||
|
||||
@@ -10,7 +10,10 @@ import { StartupQueue } from '../util/StartupQueue.std.js';
|
||||
import { drop } from '../util/drop.std.js';
|
||||
import { getMessageIdForLogging } from '../util/idForLogging.preload.js';
|
||||
import { getMessageSentTimestamp } from '../util/getMessageSentTimestamp.std.js';
|
||||
import { isIncoming } from '../state/selectors/message.preload.js';
|
||||
import {
|
||||
isIncoming,
|
||||
isPollTerminate,
|
||||
} from '../state/selectors/message.preload.js';
|
||||
import { isMessageUnread } from '../util/isMessageUnread.std.js';
|
||||
import { notificationService } from '../services/notifications.preload.js';
|
||||
import { queueUpdateMessage } from '../util/messageBatcher.preload.js';
|
||||
@@ -175,8 +178,10 @@ export async function onSync(sync: ReadSyncAttributesType): Promise<void> {
|
||||
serviceId: item.sourceServiceId,
|
||||
reason: logId,
|
||||
});
|
||||
|
||||
return isIncoming(item) && sender?.id === readSync.senderId;
|
||||
return (
|
||||
(isIncoming(item) || isPollTerminate(item)) &&
|
||||
sender?.id === readSync.senderId
|
||||
);
|
||||
});
|
||||
|
||||
if (!found) {
|
||||
|
||||
Reference in New Issue
Block a user