diff options
| author | Shpuld Shpludson <shp@cock.li> | 2020-05-02 14:17:27 +0000 |
|---|---|---|
| committer | Shpuld Shpludson <shp@cock.li> | 2020-05-02 14:17:27 +0000 |
| commit | a0f780c4550b77d4574e0de8932a2dff288784a3 (patch) | |
| tree | 63be5e8364a2e86ab778749c7ee4b880fd2420f3 /src/components/emoji_input | |
| parent | 8e049297ff6a125298ba9d06a3a4a563b231360f (diff) | |
| parent | 2618c1b702d1881970cd1ee1109c421b24f2229e (diff) | |
Merge branch 'rc/2.0.3' into 'master'
Update MASTER with 2.0.3 for real
See merge request pleroma/pleroma-fe!1099
Diffstat (limited to 'src/components/emoji_input')
| -rw-r--r-- | src/components/emoji_input/suggestor.js | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/components/emoji_input/suggestor.js b/src/components/emoji_input/suggestor.js index aec5c39d..15a71eff 100644 --- a/src/components/emoji_input/suggestor.js +++ b/src/components/emoji_input/suggestor.js @@ -29,17 +29,29 @@ export default data => input => { export const suggestEmoji = emojis => input => { const noPrefix = input.toLowerCase().substr(1) return emojis - .filter(({ displayText }) => displayText.toLowerCase().startsWith(noPrefix)) + .filter(({ displayText }) => displayText.toLowerCase().match(noPrefix)) .sort((a, b) => { let aScore = 0 let bScore = 0 - // Make custom emojis a priority - aScore += a.imageUrl ? 10 : 0 - bScore += b.imageUrl ? 10 : 0 + // An exact match always wins + aScore += a.displayText.toLowerCase() === noPrefix ? 200 : 0 + bScore += b.displayText.toLowerCase() === noPrefix ? 200 : 0 - // Sort alphabetically - const alphabetically = a.displayText > b.displayText ? 1 : -1 + // Prioritize custom emoji a lot + aScore += a.imageUrl ? 100 : 0 + bScore += b.imageUrl ? 100 : 0 + + // Prioritize prefix matches somewhat + aScore += a.displayText.toLowerCase().startsWith(noPrefix) ? 10 : 0 + bScore += b.displayText.toLowerCase().startsWith(noPrefix) ? 10 : 0 + + // Sort by length + aScore -= a.displayText.length + bScore -= b.displayText.length + + // Break ties alphabetically + const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5 return bScore - aScore + alphabetically }) |
