diff --git a/addons/mail/static/src/core/thread_model.js b/addons/mail/static/src/core/thread_model.js index 2d92d22c962..ddde79ac4a9 100644 --- a/addons/mail/static/src/core/thread_model.js +++ b/addons/mail/static/src/core/thread_model.js @@ -85,6 +85,8 @@ export class Thread { suggestedRecipients = []; hasLoadingFailed = false; canPostOnReadonly; + /** @type {String} */ + last_interest_dt; constructor(store, data) { Object.assign(this, { @@ -387,6 +389,13 @@ export class Thread { return Object.values(this.rtcSessions).filter((session) => session.videoStream).length; } + get lastInterestDateTime() { + if (!this.last_interest_dt) { + return undefined; + } + return luxon.DateTime.fromISO(new Date(this.last_interest_dt).toISOString()); + } + /** * * @param {import("@mail/core/persona_model").Persona} persona diff --git a/addons/mail/static/src/core/thread_service.js b/addons/mail/static/src/core/thread_service.js index 11fa5b43ff9..d5c097f9b98 100644 --- a/addons/mail/static/src/core/thread_service.js +++ b/addons/mail/static/src/core/thread_service.js @@ -481,17 +481,13 @@ export class ThreadService { "name", "state", "group_based_subscription", + "last_interest_dt", ]); if (thread.model === "mail.channel" && serverData.channel) { thread.channel = assignDefined(thread.channel ?? {}, serverData.channel); } thread.memberCount = serverData.channel?.memberCount ?? thread.memberCount; - if (serverData.last_interest_dt) { - thread.lastInterestDateTime = luxon.DateTime.fromISO( - new Date(serverData.last_interest_dt).toISOString() - ); - } if (serverData.channel && "serverMessageUnreadCounter" in serverData.channel) { thread.serverMessageUnreadCounter = serverData.channel.serverMessageUnreadCounter; }