diff --git a/addons/mail/static/src/models/emoji_category_view.js b/addons/mail/static/src/models/emoji_category_view.js index 9cc6f2a7fef..8a79fa9e03f 100644 --- a/addons/mail/static/src/models/emoji_category_view.js +++ b/addons/mail/static/src/models/emoji_category_view.js @@ -17,12 +17,18 @@ registerModel({ * @param {MouseEvent} ev */ onMouseenter(ev) { + if (!this.exists()) { + return; + } this.update({ isHovered: true }); }, /** * @param {MouseEvent} ev */ onMouseleave(ev) { + if (!this.exists()) { + return; + } this.update({ isHovered: false }); }, }, diff --git a/addons/mail/static/src/models/link_preview_card_view.js b/addons/mail/static/src/models/link_preview_card_view.js index c2825669dce..46b52e75397 100644 --- a/addons/mail/static/src/models/link_preview_card_view.js +++ b/addons/mail/static/src/models/link_preview_card_view.js @@ -11,12 +11,18 @@ registerModel({ * Handles mouse enter event for the container of this element. */ onMouseEnter() { + if (!this.exists()) { + return; + } this.update({ isHovered: true }); }, /** * Handles mouse leave event for the container of this element. */ onMouseLeave() { + if (!this.exists()) { + return; + } this.update({ isHovered: false }); }, }, diff --git a/addons/mail/static/src/models/link_preview_image_view.js b/addons/mail/static/src/models/link_preview_image_view.js index 09703704410..2ed05c6215c 100644 --- a/addons/mail/static/src/models/link_preview_image_view.js +++ b/addons/mail/static/src/models/link_preview_image_view.js @@ -11,12 +11,18 @@ registerModel({ * Handles mouse enter event for the container of this element. */ onMouseEnter() { + if (!this.exists()) { + return; + } this.update({ isHovered: true }); }, /** * Handles mouse leave event for the container of this element. */ onMouseLeave() { + if (!this.exists()) { + return; + } this.update({ isHovered: false }); }, }, diff --git a/addons/mail/static/src/models/link_preview_video_view.js b/addons/mail/static/src/models/link_preview_video_view.js index 3b4edabb7f6..a13f7d6766d 100644 --- a/addons/mail/static/src/models/link_preview_video_view.js +++ b/addons/mail/static/src/models/link_preview_video_view.js @@ -11,12 +11,18 @@ registerModel({ * Handles mouse enter event for the container of this element. */ onMouseEnter() { + if (!this.exists()) { + return; + } this.update({ isHovered: true }); }, /** * Handles mouse leave event for the container of this element. */ onMouseLeave() { + if (!this.exists()) { + return; + } this.update({ isHovered: false }); }, }, diff --git a/addons/mail/static/src/models/thread_view_topbar.js b/addons/mail/static/src/models/thread_view_topbar.js index 89166dd61d4..1e2411ab203 100644 --- a/addons/mail/static/src/models/thread_view_topbar.js +++ b/addons/mail/static/src/models/thread_view_topbar.js @@ -303,7 +303,7 @@ registerModel({ * @param {MouseEvent} ev */ onMouseEnterTopbarThreadName(ev) { - if (!this.thread || !this.thread.isChannelRenamable) { + if (!this.exists() || !this.thread || !this.thread.isChannelRenamable) { return; } this.update({ isMouseOverThreadName: true }); @@ -325,6 +325,9 @@ registerModel({ * @param {MouseEvent} ev */ onMouseEnterUserName(ev) { + if (!this.exists()) { + return; + } this.update({ isMouseOverUserName: true }); }, /** @@ -333,6 +336,9 @@ registerModel({ * @param {MouseEvent} ev */ onMouseLeaveTopbarThreadName(ev) { + if (!this.exists()) { + return; + } this.update({ isMouseOverThreadName: false }); }, /** @@ -341,6 +347,9 @@ registerModel({ * @param {MouseEvent} ev */ onMouseLeaveTopbarThreadDescription(ev) { + if (!this.exists()) { + return; + } this.update({ isMouseOverThreadDescription: false }); }, /** @@ -349,6 +358,9 @@ registerModel({ * @param {MouseEvent} ev */ onMouseLeaveUserName(ev) { + if (!this.exists()) { + return; + } this.update({ isMouseOverUserName: false }); }, /**