Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Upgrade emojibase and twemoji (#7286)
Browse files Browse the repository at this point in the history
Co-authored-by: Tulir Asokan <tulir@maunium.net>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
  • Loading branch information
3 people authored Mar 23, 2022
1 parent 9961b00 commit 3534e9b
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 21 deletions.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,9 @@
"counterpart": "^0.18.6",
"diff-dom": "^4.2.2",
"diff-match-patch": "^1.0.5",
"emojibase-data": "^6.2.0",
"emojibase-regex": "^5.1.3",
"emojibase": "6.0.2",
"emojibase-data": "7.0.0",
"emojibase-regex": "6.0.0",
"escape-html": "^1.0.3",
"file-saver": "^2.0.5",
"filesize": "6.1.0",
Expand Down
Binary file modified res/fonts/Twemoji_Mozilla/TwemojiMozilla-colr.woff2
Binary file not shown.
Binary file modified res/fonts/Twemoji_Mozilla/TwemojiMozilla-sbix.woff2
Binary file not shown.
2 changes: 1 addition & 1 deletion src/autocomplete/EmojiProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export default class EmojiProvider extends AutocompleteProvider {
shouldMatchWordsOnly: false,
});
this.nameMatcher = new QueryMatcher(SORTED_EMOJI, {
keys: ['emoji.annotation'],
keys: ['emoji.label'],
// For removing punctuation
shouldMatchWordsOnly: true,
});
Expand Down
7 changes: 5 additions & 2 deletions src/components/views/emojipicker/EmojiPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,11 @@ class EmojiPicker extends React.Component<IProps, IState> {
};

private emojiMatchesFilter = (emoji: IEmoji, filter: string): boolean => {
return emoji.annotation.toLowerCase().includes(filter) ||
emoji.emoticon?.toLowerCase().includes(filter) ||
return emoji.label.toLowerCase().includes(filter) ||
(Array.isArray(emoji.emoticon)
? emoji.emoticon.some((x) => x.includes(filter))
: emoji.emoticon?.includes(filter)
) ||
emoji.shortcodes.some(x => x.toLowerCase().includes(filter)) ||
emoji.unicode.split(ZERO_WIDTH_JOINER).includes(filter);
};
Expand Down
4 changes: 2 additions & 2 deletions src/components/views/emojipicker/Preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ interface IProps {
@replaceableComponent("views.emojipicker.Preview")
class Preview extends React.PureComponent<IProps> {
render() {
const { unicode, annotation, shortcodes: [shortcode] } = this.props.emoji;
const { unicode, label, shortcodes: [shortcode] } = this.props.emoji;

return (
<div className="mx_EmojiPicker_footer mx_EmojiPicker_preview">
Expand All @@ -36,7 +36,7 @@ class Preview extends React.PureComponent<IProps> {
</div>
<div className="mx_EmojiPicker_preview_text">
<div className="mx_EmojiPicker_name mx_EmojiPicker_preview_name">
{ annotation }
{ label }
</div>
<div className="mx_EmojiPicker_shortcode">
{ shortcode }
Expand Down
2 changes: 1 addition & 1 deletion src/components/views/emojipicker/QuickReactions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class QuickReactions extends React.Component<IProps, IState> {
{ !this.state.hover
? _t("Quick Reactions")
: <React.Fragment>
<span className="mx_EmojiPicker_name">{ this.state.hover.annotation }</span>
<span className="mx_EmojiPicker_name">{ this.state.hover.label }</span>
<span className="mx_EmojiPicker_shortcode">{ this.state.hover.shortcodes[0] }</span>
</React.Fragment>
}
Expand Down
10 changes: 6 additions & 4 deletions src/emoji.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ import EMOJIBASE from 'emojibase-data/en/compact.json';
import SHORTCODES from 'emojibase-data/en/shortcodes/iamcal.json';

export interface IEmoji {
annotation: string;
label: string;
group?: number;
hexcode: string;
order?: number;
shortcodes: string[];
tags?: string[];
unicode: string;
skins?: Omit<IEmoji, "shortcodes" | "tags">[]; // Currently unused
emoticon?: string;
emoticon?: string | string[];
}

// The unicode is stored without the variant selector
Expand Down Expand Up @@ -74,7 +74,7 @@ export const EMOJI: IEmoji[] = EMOJIBASE.map((emojiData: Omit<IEmoji, "shortcode
// If there's ever a gap in shortcode coverage, we fudge it by
// filling it in with the emoji's CLDR annotation
const shortcodeData = SHORTCODES[emojiData.hexcode] ??
[emojiData.annotation.toLowerCase().replace(/\W+/g, "_")];
[emojiData.label.toLowerCase().replace(/\W+/g, "_")];

const emoji: IEmoji = {
...emojiData,
Expand Down Expand Up @@ -102,7 +102,9 @@ export const EMOJI: IEmoji[] = EMOJIBASE.map((emojiData: Omit<IEmoji, "shortcode

if (emoji.emoticon) {
// Add mapping from emoticon to Emoji object
EMOTICON_TO_EMOJI.set(emoji.emoticon, emoji);
Array.isArray(emoji.emoticon)
? emoji.emoticon.forEach((x) => EMOTICON_TO_EMOJI.set(x, emoji))
: EMOTICON_TO_EMOJI.set(emoji.emoticon, emoji);
}

return emoji;
Expand Down
23 changes: 14 additions & 9 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3531,15 +3531,20 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==

emojibase-data@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-6.2.0.tgz#db6c75c36905284fa623f4aa5f468d2be6ed364a"
integrity sha512-SWKaXD2QeQs06IE7qfJftsI5924Dqzp+V9xaa5RzZIEWhmlrG6Jt2iKwfgOPHu+5S8MEtOI7GdpKsXj46chXOw==

emojibase-regex@^5.1.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/emojibase-regex/-/emojibase-regex-5.1.3.tgz#f0ef621ed6ec624becd2326f999fd4ea01b94554"
integrity sha512-gT8T9LxLA8VJdI+8KQtyykB9qKzd7WuUL3M2yw6y9tplFeufOUANg3UKVaKUvkMcRNvZsSElWhxcJrx8WPE12g==
emojibase-data@7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-7.0.0.tgz#5e16ed265871d58b3ca7c3b2bc7d80853a55f34f"
integrity sha512-ka3p06egA+jqWnUUjNfOwYAw4j9/+KyUcCpFjSItM0NjbL8n5qZfe1mskmGUP4TkuE5SbiOvG++CC1iN+53jKg==

emojibase-regex@6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/emojibase-regex/-/emojibase-regex-6.0.0.tgz#2d236f6bd38e6aa69089707eb06fe1f6a3270198"
integrity sha512-vpo76XcjjFapY4Q1vZAp8fu07p9lNCZi0TMtpZ3XyHYRqnqYZTzHgSI7tMvpYmnD8xt9o4XC5oUaSJXT4Ky9Tw==

emojibase@6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/emojibase/-/emojibase-6.0.2.tgz#1e76996b2bd9e6927e51f54c3995245b03eacb02"
integrity sha512-2h2eblOm86tj+lsJLgLYmEni13H74KNNu1NI1ZgMOX9ByWuvjFZLhETEUH1edpcd8srAlzhfJSD892UbpxfwsA==

emojis-list@^3.0.0:
version "3.0.0"
Expand Down

0 comments on commit 3534e9b

Please sign in to comment.