diff --git a/addons/mail/static/src/emoji_picker/emoji_picker.js b/addons/mail/static/src/emoji_picker/emoji_picker.js index f188d8d039b..a3565d1a09b 100644 --- a/addons/mail/static/src/emoji_picker/emoji_picker.js +++ b/addons/mail/static/src/emoji_picker/emoji_picker.js @@ -296,25 +296,21 @@ export class EmojiPicker extends Component { } selectCategory(ev) { - const id = Number(ev.target.dataset.id); - if (!isNaN(id)) { - this.state.searchStr = ""; - this.state.categoryId = id; - this.shouldScrollElem = true; - } + const id = Number(ev.currentTarget.dataset.id); + this.state.searchStr = ""; + this.state.categoryId = id; + this.shouldScrollElem = true; } selectEmoji(ev) { - const codepoints = ev.target.dataset.codepoints; - if (codepoints) { - this.props.onSelect(codepoints); - this.recent[codepoints] ??= 0; - this.recent[codepoints]++; - browser.localStorage.setItem("mail.emoji.frequent", JSON.stringify(this.recent)); - this.gridRef.el.scrollTop = 0; - this.props.close(); - this.props.onClose(); - } + const codepoints = ev.currentTarget.dataset.codepoints; + this.props.onSelect(codepoints); + this.recent[codepoints] ??= 0; + this.recent[codepoints]++; + browser.localStorage.setItem("mail.emoji.frequent", JSON.stringify(this.recent)); + this.gridRef.el.scrollTop = 0; + this.props.close(); + this.props.onClose(); } highlightActiveCategory() { diff --git a/addons/mail/static/src/emoji_picker/emoji_picker.scss b/addons/mail/static/src/emoji_picker/emoji_picker.scss index 19a29aa4f19..3ab45dddedd 100644 --- a/addons/mail/static/src/emoji_picker/emoji_picker.scss +++ b/addons/mail/static/src/emoji_picker/emoji_picker.scss @@ -5,11 +5,6 @@ display: grid; grid-template-rows: 34px 35px 1fr; - &.o-failure { - width: 200px; - height: 120px; - } - .o-mail-Emoji { width: 30px; font-size: 1.5rem; @@ -23,13 +18,18 @@ } .o-mail-EmojiPicker-empty { + font-size: 5rem !important; filter: grayscale(0.25); } input:not(:focus) { - & + i.oi-search, &::placeholder { + &::placeholder { opacity: 75%; } + + & + i.oi-search { + opacity: 60%; + } } } diff --git a/addons/mail/static/src/emoji_picker/emoji_picker.xml b/addons/mail/static/src/emoji_picker/emoji_picker.xml index 7ed4354b19d..6d7a2be13f3 100644 --- a/addons/mail/static/src/emoji_picker/emoji_picker.xml +++ b/addons/mail/static/src/emoji_picker/emoji_picker.xml @@ -2,13 +2,13 @@ -
+
- 😵‍💫 - Failed to load emojis... + 😵‍💫 + Failed to load emojis... -
+
@@ -26,7 +26,11 @@
-
+
+ + 😢 + No emoji match your search + @@ -59,19 +63,19 @@ - + - - + + - - + + diff --git a/addons/mail/static/tests/emoji/emoji_tests.js b/addons/mail/static/tests/emoji/emoji_tests.js index 06698daa3fd..ba5c7afcf46 100644 --- a/addons/mail/static/tests/emoji/emoji_tests.js +++ b/addons/mail/static/tests/emoji/emoji_tests.js @@ -141,3 +141,12 @@ QUnit.test("posting :snowman: in message should impact recent", async (assert) = "span:contains(Frequently used) ~ .o-mail-Emoji:contains(☃️) ~ span:contains(Smileys & Emotion)" ); }); + +QUnit.test("first category should be highlight by default", async (assert) => { + const pyEnv = await startServer(); + const channelId = pyEnv["mail.channel"].create({ name: "" }); + const { openDiscuss } = await start(); + await openDiscuss(channelId); + await click("button[aria-label='Emojis']"); + assert.containsOnce($, ".o-mail-EmojiPicker-header .o-mail-Emoji:eq(0).bg-300"); +});