diff --git a/addons/im_livechat/static/src/embed/core/messaging_service_patch.js b/addons/im_livechat/static/src/embed/core/messaging_service_patch.js index 9fc7e84e1f7..b1ab293fd74 100644 --- a/addons/im_livechat/static/src/embed/core/messaging_service_patch.js +++ b/addons/im_livechat/static/src/embed/core/messaging_service_patch.js @@ -16,6 +16,7 @@ patch(Messaging.prototype, "im_livechat", { this.store.isMessagingReady = true; this.isReady.resolve({ channels: [], + current_user_settings: {}, }); }, }); diff --git a/addons/mail/static/src/core/common/messaging_service.js b/addons/mail/static/src/core/common/messaging_service.js index 7386a6f83ec..c3c28da07ed 100644 --- a/addons/mail/static/src/core/common/messaging_service.js +++ b/addons/mail/static/src/core/common/messaging_service.js @@ -93,16 +93,10 @@ export class Messaging { ...data.odoobot, type: "partner", }); - for (const channelData of data.channels) { - this.threadService.createChannelThread(channelData); - } - this.threadService.sortChannels(); const settings = data.current_user_settings; this.userSettingsService.updateFromCommands(settings); this.userSettingsService.id = settings.id; this.store.companyName = data.companyName; - this.store.discuss.channels.isOpen = settings.is_discuss_sidebar_category_channel_open; - this.store.discuss.chats.isOpen = settings.is_discuss_sidebar_category_chat_open; this.store.discuss.inbox.counter = data.needaction_inbox_counter; this.store.internalUserGroupId = data.internalUserGroupId; this.store.discuss.starred.counter = data.starred_counter; diff --git a/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js b/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js index de65a6a6b53..b8ea50c2d29 100644 --- a/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js +++ b/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js @@ -31,7 +31,11 @@ export class DiscussCoreCommon { } setup() { - this.messagingService.isReady.then(() => { + this.messagingService.isReady.then((data) => { + for (const channelData of data.channels) { + this.threadService.createChannelThread(channelData); + } + this.threadService.sortChannels(); this.busService.subscribe("discuss.channel/joined", (payload) => { const { channel, invited_by_user_id: invitedByUserId } = payload; const thread = this.threadService.insert({ diff --git a/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js b/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js index 65771362a7c..b094b4ead7a 100644 --- a/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js +++ b/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js @@ -25,8 +25,8 @@ export class DiscussCoreWeb { } setup() { - this.messagingService.isReady.then(({ channels }) => { - for (const channelData of channels) { + this.messagingService.isReady.then((data) => { + for (const channelData of data.channels) { const thread = this.threadService.createChannelThread(channelData); if ( channelData.is_minimized && @@ -40,6 +40,10 @@ export class DiscussCoreWeb { }); } } + this.store.discuss.channels.isOpen = + data.current_user_settings.is_discuss_sidebar_category_channel_open; + this.store.discuss.chats.isOpen = + data.current_user_settings.is_discuss_sidebar_category_chat_open; }); this.env.bus.addEventListener( "discuss.channel/new_message",