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 @@