From b4750008fa09aa05feed776eb979e28eb0ef6d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Wed, 28 Sep 2022 13:33:08 +0000 Subject: [PATCH] [IMP] mail: move code to models (ComposerSuggestionView) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-3000269 closes odoo/odoo#101576 X-original-commit: 66734b6c187e78e039f7f32c8adf105cb32aa2d6 Signed-off-by: Louis Wicket (wil) Signed-off-by: Alexandre Kühn (aku) --- .../composer_suggestion_view.js | 26 +++---------------- .../src/models/composer_suggestion_view.js | 11 ++++++++ 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/addons/mail/static/src/components/composer_suggestion_view/composer_suggestion_view.js b/addons/mail/static/src/components/composer_suggestion_view/composer_suggestion_view.js index 5c3a0787ec1..55ea1edca3e 100644 --- a/addons/mail/static/src/components/composer_suggestion_view/composer_suggestion_view.js +++ b/addons/mail/static/src/components/composer_suggestion_view/composer_suggestion_view.js @@ -1,6 +1,7 @@ /** @odoo-module **/ -import { useUpdate } from '@mail/component_hooks/use_update'; +import { useComponentToModel } from '@mail/component_hooks/use_component_to_model'; +import { useUpdateToModel } from '@mail/component_hooks/use_update_to_model'; import { registerMessagingComponent } from '@mail/utils/messaging_component'; const { Component } = owl; @@ -12,7 +13,8 @@ export class ComposerSuggestionView extends Component { */ setup() { super.setup(); - useUpdate({ func: () => this._update() }); + useComponentToModel({ fieldName: 'component' }); + useUpdateToModel({ methodName: 'onComponentUpdate' }); } //-------------------------------------------------------------------------- @@ -26,26 +28,6 @@ export class ComposerSuggestionView extends Component { return this.props.record; } - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - - /** - * @private - */ - _update() { - if ( - this.root.el && - this.composerSuggestionView.composerSuggestionListViewOwner.hasToScrollToActiveSuggestionView && - this.composerSuggestionView.composerSuggestionListViewOwnerAsActiveSuggestionView - ) { - this.root.el.scrollIntoView({ - block: 'center', - }); - this.composerSuggestionView.composerSuggestionListViewOwner.update({ hasToScrollToActiveSuggestionView: false }); - } - } - } Object.assign(ComposerSuggestionView, { diff --git a/addons/mail/static/src/models/composer_suggestion_view.js b/addons/mail/static/src/models/composer_suggestion_view.js index e7d28c7ca8b..26f1f872f68 100644 --- a/addons/mail/static/src/models/composer_suggestion_view.js +++ b/addons/mail/static/src/models/composer_suggestion_view.js @@ -26,8 +26,19 @@ registerModel({ composerViewOwner.closeSuggestions(); composerViewOwner.update({ doFocus: true }); }, + onComponentUpdate() { + if ( + this.component.root.el && + this.composerSuggestionListViewOwner.hasToScrollToActiveSuggestionView && + this.composerSuggestionListViewOwnerAsActiveSuggestionView + ) { + this.component.root.el.scrollIntoView({ block: 'center' }); + this.composerSuggestionListViewOwner.update({ hasToScrollToActiveSuggestionView: false }); + } + }, }, fields: { + component: attr(), composerSuggestionListViewOwner: one('ComposerSuggestionListView', { compute() { if (this.composerSuggestionListViewExtraComposerSuggestionViewItemOwner) {