From 83395160ca3f8fd3c408eddc218157ba20e1e2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Wed, 28 Sep 2022 14:12:52 +0000 Subject: [PATCH] [IMP] mail: move code to models (FollowerListMenu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-3000317 closes odoo/odoo#101604 X-original-commit: 89e60f414b88def011dc5b8b63444b12edb5d824 Signed-off-by: Alexandre Kühn (aku) Signed-off-by: Louis Wicket (wil) --- .../follower_list_menu/follower_list_menu.js | 46 ++----------------- .../follower_list_menu/follower_list_menu.xml | 2 +- .../src/models/follower_list_menu_view.js | 32 +++++++++++++ 3 files changed, 36 insertions(+), 44 deletions(-) diff --git a/addons/mail/static/src/components/follower_list_menu/follower_list_menu.js b/addons/mail/static/src/components/follower_list_menu/follower_list_menu.js index e19ae239544..5fb38945e37 100644 --- a/addons/mail/static/src/components/follower_list_menu/follower_list_menu.js +++ b/addons/mail/static/src/components/follower_list_menu/follower_list_menu.js @@ -1,8 +1,9 @@ /** @odoo-module **/ +import { useRefToModel } from '@mail/component_hooks/use_ref_to_model'; import { registerMessagingComponent } from '@mail/utils/messaging_component'; -const { Component, onMounted, onWillUnmount, useRef } = owl; +const { Component } = owl; export class FollowerListMenu extends Component { @@ -11,18 +12,7 @@ export class FollowerListMenu extends Component { */ setup() { super.setup(); - this._dropdownRef = useRef('dropdown'); - this._onClickCaptureGlobal = this._onClickCaptureGlobal.bind(this); - onMounted(() => this._mounted()); - onWillUnmount(() => this._willUnmount()); - } - - _mounted() { - document.addEventListener('click', this._onClickCaptureGlobal, true); - } - - _willUnmount() { - document.removeEventListener('click', this._onClickCaptureGlobal, true); + useRefToModel({ fieldName: 'dropdownRef', refName: 'dropdown' }); } //-------------------------------------------------------------------------- @@ -36,36 +26,6 @@ export class FollowerListMenu extends Component { return this.props.record; } - //-------------------------------------------------------------------------- - // Handlers - //-------------------------------------------------------------------------- - - /** - * @private - * @param {MouseEvent} ev - */ - _onClickAddFollowers(ev) { - ev.preventDefault(); - this.followerListMenuView.hide(); - this.followerListMenuView.chatterOwner.promptAddPartnerFollower(); - } - - /** - * Close the dropdown when clicking outside of it. - * - * @private - * @param {MouseEvent} ev - */ - _onClickCaptureGlobal(ev) { - if (!this.followerListMenuView.exists()) { - return; - } - // since dropdown is conditionally shown based on state, dropdownRef can be null - if (this._dropdownRef.el && !this._dropdownRef.el.contains(ev.target)) { - this.followerListMenuView.hide(); - } - } - } Object.assign(FollowerListMenu, { diff --git a/addons/mail/static/src/components/follower_list_menu/follower_list_menu.xml b/addons/mail/static/src/components/follower_list_menu/follower_list_menu.xml index 743b79b9dbd..0084a37a085 100644 --- a/addons/mail/static/src/components/follower_list_menu/follower_list_menu.xml +++ b/addons/mail/static/src/components/follower_list_menu/follower_list_menu.xml @@ -13,7 +13,7 @@