From 361139c63c8cfe46896d9d92b78b014c2506fb8b Mon Sep 17 00:00:00 2001 From: John Palmer Date: Thu, 17 Mar 2022 05:51:09 +0000 Subject: [PATCH] [m100 cherrypick] Ensure that emoji search is updated when emoji are added to the picker When we use the polymer observer, it doesn't trigger the update since the array object hasn't changed. Change the observer so that it depends on the array length so that it is always called. Test to follow (cherry picked from commit 0e6d77b2cd72dd2b91b5328d84c8999f935393ee) Bug: b:219358661 Change-Id: I2e2a20d8cdd2de624b7d0392c0d6198f12206561 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3511648 Reviewed-by: Keith Lee Reviewed-by: Curtis McMullan Commit-Queue: John Palmer Cr-Original-Commit-Position: refs/heads/main@{#980402} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3530467 Cr-Commit-Position: refs/branch-heads/4896@{#623} Cr-Branched-From: 1f63ff4bc27570761b35ffbc7f938f6586f7bee8-refs/heads/main@{#972766} --- .../browser/resources/chromeos/emoji_picker/emoji_search.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/chrome/browser/resources/chromeos/emoji_picker/emoji_search.js b/chrome/browser/resources/chromeos/emoji_picker/emoji_search.js index 789eeca8eabd1..ed277216ff6c5 100644 --- a/chrome/browser/resources/chromeos/emoji_picker/emoji_search.js +++ b/chrome/browser/resources/chromeos/emoji_picker/emoji_search.js @@ -36,7 +36,7 @@ export class EmojiSearch extends PolymerElement { /** @private {!Array} */ emojiList: { type: Array, - computed: 'computeEmojiList(emojiData)', + computed: 'computeEmojiList(emojiData,emojiData.length)', observer: 'onEmojiListChanged' }, /** @private {!Array} */ @@ -189,9 +189,11 @@ export class EmojiSearch extends PolymerElement { * 1) Remove duplicates. * 2) Remove groupings. * @param {!EmojiGroupData} emojiData + * @param {number} emojiDataLength Used to trick polymer into calling this + * when the emojidata is updated via push * @return {!Array} */ - computeEmojiList(emojiData) { + computeEmojiList(emojiData, emojiDataLength) { return Array.from( new Map(emojiData.map(group => group.emoji).flat(1).map(emoji => { // The Fuse search library in ChromeOS doesn't support prefix