feat: disappear after reading now works

pull/2660/head
William Grant 2 years ago
parent 4ee440304c
commit 6febf2859e

@ -1,7 +1,7 @@
import { queueAttachmentDownloads } from './attachments';
import { Quote } from './types';
import _, { isEqual } from 'lodash';
import _, { isEmpty, isEqual } from 'lodash';
import { getConversationController } from '../session/conversations';
import { ConversationModel } from '../models/conversation';
import { MessageModel, sliceQuoteText } from '../models/message';
@ -361,9 +361,11 @@ export async function handleMessageJob(
ConversationTypeEnum.PRIVATE
);
try {
console.log(`WIP: handleMessageJob expireUpdate`, expireUpdate, regularDataMessage);
messageModel.set({ flags: regularDataMessage.flags });
// TODO remove 2 weeks after release
if (messageModel.isExpirationTimerUpdate()) {
console.log(`WIP: isExpirationTimerUpdate`, messageModel);
// TODO account for lastDisappearingMessageChangeTimestamp
const { expireTimer: oldExpireTimer } = regularDataMessage;
const expirationType = expireUpdate.expirationType;
@ -375,7 +377,7 @@ export async function handleMessageJob(
if (isEqual(expirationType, oldTypeValue) && expireTimer === oldTimerValue) {
confirm?.();
window?.log?.info(
'Dropping ExpireTimerUpdate message as we already have the same one set.'
'WIP: Dropping ExpireTimerUpdate message as we already have the same one set.'
);
return;
}
@ -388,6 +390,12 @@ export async function handleMessageJob(
expireTimer
);
} else {
if (!isEmpty(expireUpdate)) {
messageModel.set({
expirationType: expireUpdate.expirationType,
expireTimer: expireUpdate.expireTimer,
});
}
// this does not commit to db nor UI unless we need to approve a convo
await handleRegularMessage(
conversation,

@ -131,10 +131,10 @@ async function handleMessageSentSuccess(
sent_at: effectiveTimestamp,
});
if (fetchedMessage.get('expirationType') === 'deleteAfterSend') {
if (fetchedMessage.get('expirationType')) {
const expirationStartTimestamp = setExpirationStartTimestamp(
fetchedMessage,
'deleteAfterSend',
fetchedMessage.get('expirationType')!,
effectiveTimestamp
);
fetchedMessage.set('expirationStartTimestamp', expirationStartTimestamp);

@ -47,13 +47,6 @@ async function onReadReceipt(receipt: { source: string; timestamp: number; readA
// we do not care of who read it. If the length is > 0 , it is read and false otherwise
let readBy = message.get('read_by') || [];
let expirationStartTimestamp = undefined;
if (message.get('expirationType') === 'deleteAfterRead') {
expirationStartTimestamp = setExpirationStartTimestamp(
message,
'deleteAfterRead',
message.get('expirationStartTimestamp')
);
}
if (!readBy.length) {
readBy.push(receipt.source);

Loading…
Cancel
Save