diff --git a/addons/mail/i18n/mail.pot b/addons/mail/i18n/mail.pot index 7db1f3343df..6b3ecd4cf7a 100644 --- a/addons/mail/i18n/mail.pot +++ b/addons/mail/i18n/mail.pot @@ -4206,6 +4206,7 @@ msgstr "" #: code:addons/mail/static/src/components/message_list/message_list.xml:0 #: code:addons/mail/static/src/components/thread_view/thread_view.xml:0 #: code:addons/mail/static/src/components/thread_view/thread_view.xml:0 +#: code:addons/mail/static/src/models/emoji_grid_loading_screen.js:0 #: code:addons/mail/static/src/xml/web_kanban_activity.xml:0 #: code:addons/mail/static/src/xml/web_kanban_activity.xml:0 #, python-format diff --git a/addons/mail/static/src/components/emoji_grid_loading_screen/emoji_grid_loading_screen.js b/addons/mail/static/src/components/emoji_grid_loading_screen/emoji_grid_loading_screen.js new file mode 100644 index 00000000000..811c7168e7b --- /dev/null +++ b/addons/mail/static/src/components/emoji_grid_loading_screen/emoji_grid_loading_screen.js @@ -0,0 +1,21 @@ +/** @odoo-module **/ + +import { registerMessagingComponent } from '@mail/utils/messaging_component'; + +const { Component } = owl; + +export class EmojiGridLoadingScreen extends Component { + /** + * @returns {EmojiGridLoadingScreen} + */ + get EmojiGridLoadingScreen() { + return this.props.record; + } +} + +Object.assign(EmojiGridLoadingScreen, { + props: { record: Object }, + template: 'mail.EmojiGridLoadingScreen', +}); + +registerMessagingComponent(EmojiGridLoadingScreen); diff --git a/addons/mail/static/src/components/emoji_grid_loading_screen/emoji_grid_loading_screen.xml b/addons/mail/static/src/components/emoji_grid_loading_screen/emoji_grid_loading_screen.xml new file mode 100644 index 00000000000..9b2a1adf180 --- /dev/null +++ b/addons/mail/static/src/components/emoji_grid_loading_screen/emoji_grid_loading_screen.xml @@ -0,0 +1,10 @@ + + + + +
+
+ +
+ + diff --git a/addons/mail/static/src/components/emoji_grid_search_no_content_view/emoji_grid_search_no_content_view.xml b/addons/mail/static/src/components/emoji_grid_search_no_content_view/emoji_grid_search_no_content_view.xml index 1536c891aa0..f5fb6fb11ce 100644 --- a/addons/mail/static/src/components/emoji_grid_search_no_content_view/emoji_grid_search_no_content_view.xml +++ b/addons/mail/static/src/components/emoji_grid_search_no_content_view/emoji_grid_search_no_content_view.xml @@ -2,7 +2,7 @@ -
+
😢
diff --git a/addons/mail/static/src/components/emoji_grid_view/emoji_grid_view.xml b/addons/mail/static/src/components/emoji_grid_view/emoji_grid_view.xml index fb7e63be43f..0021ef73dc5 100644 --- a/addons/mail/static/src/components/emoji_grid_view/emoji_grid_view.xml +++ b/addons/mail/static/src/components/emoji_grid_view/emoji_grid_view.xml @@ -3,6 +3,7 @@
+
diff --git a/addons/mail/static/src/models/emoji_grid_loading_screen.js b/addons/mail/static/src/models/emoji_grid_loading_screen.js new file mode 100644 index 00000000000..0b40d52c221 --- /dev/null +++ b/addons/mail/static/src/models/emoji_grid_loading_screen.js @@ -0,0 +1,19 @@ +/** @odoo-module **/ + +import { registerModel } from '@mail/model/model_core'; +import { attr, one } from '@mail/model/model_field'; + +registerModel({ + name: 'EmojiGridLoadingScreen', + fields: { + emojiGridViewOwner: one('EmojiGridView', { + identifying: true, + inverse: 'loadingScreenView', + }), + text: attr({ + compute() { + return this.env._t("Loading..."); + }, + }), + }, +}); diff --git a/addons/mail/static/src/models/emoji_grid_view.js b/addons/mail/static/src/models/emoji_grid_view.js index 3e9b209dc80..9632dec8a93 100644 --- a/addons/mail/static/src/models/emoji_grid_view.js +++ b/addons/mail/static/src/models/emoji_grid_view.js @@ -132,6 +132,15 @@ registerModel({ default: 0, }), listRef: attr(), + loadingScreenView: one('EmojiGridLoadingScreen', { + compute() { + if (!this.messaging.emojiRegistry.isLoaded) { + return {}; + } + return clear(); + }, + inverse: 'emojiGridViewOwner', + }), nonSearchRowRegistry: one('EmojiGridViewRowRegistry', { default: {}, inverse: 'emojiGridViewOwnerAsNonSearch',