diff --git a/addons/mail/static/src/core/common/messaging_service.js b/addons/mail/static/src/core/common/messaging_service.js index 59df8bc1c28..16e37cfc95e 100644 --- a/addons/mail/static/src/core/common/messaging_service.js +++ b/addons/mail/static/src/core/common/messaging_service.js @@ -130,14 +130,6 @@ export class Messaging { handleNotification(notifications) { for (const notif of notifications) { switch (notif.type) { - case "mail.activity/updated": - if (notif.payload.activity_created) { - this.store.activityCounter++; - } - if (notif.payload.activity_deleted) { - this.store.activityCounter--; - } - break; case "mail.record/insert": this._handleNotificationRecordInsert(notif); break; diff --git a/addons/mail/static/src/core/web/mail_core_web_service.js b/addons/mail/static/src/core/web/mail_core_web_service.js index 4696d5f8fb3..2f377315ef2 100644 --- a/addons/mail/static/src/core/web/mail_core_web_service.js +++ b/addons/mail/static/src/core/web/mail_core_web_service.js @@ -7,6 +7,7 @@ import { registry } from "@web/core/registry"; export class MailCoreWeb { constructor(env, services) { Object.assign(this, { + busService: services.bus_service, rpc: services.rpc, }); /** @type {import("@mail/core/common/message_service").MessageService} */ @@ -34,12 +35,20 @@ export class MailCoreWeb { (n1, n2) => n2.lastMessage.id - n1.lastMessage.id ); }); + this.busService.subscribe("mail.activity/updated", (payload) => { + if (payload.activity_created) { + this.store.activityCounter++; + } + if (payload.activity_deleted) { + this.store.activityCounter--; + } + }); }); } } export const mailCoreWeb = { - dependencies: ["mail.message", "mail.messaging", "mail.store", "rpc"], + dependencies: ["bus_service", "mail.message", "mail.messaging", "mail.store", "rpc"], start(env, services) { const mailCoreWeb = reactive(new MailCoreWeb(env, services)); mailCoreWeb.setup();