[FIX] mail: cache online and offline getter
Before this PR online and offline cache getter where called when not needed. This PR move the code inside the onWillRender hook to cache the results and avoid useless computation of getters. task-3572093 closes odoo/odoo#141750 X-original-commit: 57aa00893cc47456d5eb39f429c83c4069ab0d7e Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
committed by
Alexandre Kühn
parent
6492739199
commit
cfeef1472f
@@ -3,7 +3,7 @@
|
||||
import { ImStatus } from "@mail/core/common/im_status";
|
||||
import { ActionPanel } from "@mail/discuss/core/common/action_panel";
|
||||
|
||||
import { Component, onWillUpdateProps, onWillStart, useState } from "@odoo/owl";
|
||||
import { Component, onWillUpdateProps, onWillStart, useState, onWillRender } from "@odoo/owl";
|
||||
|
||||
import { _t } from "@web/core/l10n/translation";
|
||||
import { useService } from "@web/core/utils/hooks";
|
||||
@@ -23,6 +23,10 @@ export class ChannelMemberList extends Component {
|
||||
this.threadService.fetchChannelMembers(nextProps.thread);
|
||||
}
|
||||
});
|
||||
onWillRender(() => {
|
||||
this.onlineMembers = this.props.thread.onlineMembers;
|
||||
this.offlineMembers = this.props.thread.offlineMembers;
|
||||
});
|
||||
}
|
||||
|
||||
canOpenChatWith(member) {
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
<t t-name="discuss.ChannelMemberList">
|
||||
<ActionPanel title="title">
|
||||
<button t-on-click="() => props.openChannelInvitePanel({ keepPrevious: env.inChatWindow })" class="btn btn-secondary m-3 mt-0">Invite a User</button>
|
||||
<t t-if="props.thread.onlineMembers.length > 0">
|
||||
<t t-if="onlineMembers.length > 0">
|
||||
<h6 class="mx-3 text-700">
|
||||
Online -
|
||||
<t t-esc="props.thread.onlineMembers.length"/>
|
||||
<t t-esc="onlineMembers.length"/>
|
||||
</h6>
|
||||
<t t-foreach="props.thread.onlineMembers" t-as="member" t-key="member.id" t-call="discuss.channel_member"/>
|
||||
<t t-foreach="onlineMembers" t-as="member" t-key="member.id" t-call="discuss.channel_member"/>
|
||||
</t>
|
||||
<t t-if="props.thread.offlineMembers.length > 0">
|
||||
<t t-if="offlineMembers.length > 0">
|
||||
<h6 class="mx-3 text-700">
|
||||
Offline -
|
||||
<t t-esc="props.thread.offlineMembers.length"/>
|
||||
<t t-esc="offlineMembers.length"/>
|
||||
</h6>
|
||||
<t t-foreach="props.thread.offlineMembers" t-as="member" t-key="member.id" t-call="discuss.channel_member"/>
|
||||
<t t-foreach="offlineMembers" t-as="member" t-key="member.id" t-call="discuss.channel_member"/>
|
||||
</t>
|
||||
<span t-if="props.thread.unknownMembersCount === 1" class="mx-2 mt-2">And 1 other member.</span>
|
||||
<span t-if="props.thread.unknownMembersCount > 1" class="mx-2 mt-2">And <t t-esc="props.thread.unknownMembersCount"/> other members.</span>
|
||||
|
||||
Reference in New Issue
Block a user