summaryrefslogtreecommitdiff
path: root/src/client/app
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-09-21 21:31:38 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-09-21 21:31:38 +0900
commit60d2558ed6f99ce4f7f26966ed6fd62cce9adf47 (patch)
tree24a61f2af75c7d19887136c1232b8275ebd9f782 /src/client/app
parentFix: selectでprefix/sufixがないときにいらない下線が付く (#5440) (diff)
downloadmisskey-60d2558ed6f99ce4f7f26966ed6fd62cce9adf47.tar.gz
misskey-60d2558ed6f99ce4f7f26966ed6fd62cce9adf47.tar.bz2
misskey-60d2558ed6f99ce4f7f26966ed6fd62cce9adf47.zip
絵文字ピッカーの Unicode 12.0 対応など (#5441)
* Twemoji 12.1 * 絵文字ライブラリを持つように * Fix chess_pawn emoji * Add Unicode 12.0 emojis * Add transgender flag/symbol emoji * Add some japanese emoji keywords * format emojilist.json * fix emojilist order * Add missing flags
Diffstat (limited to 'src/client/app')
-rw-r--r--src/client/app/common/views/components/autocomplete.vue30
-rw-r--r--src/client/app/common/views/components/emoji-picker.vue16
-rw-r--r--src/client/app/common/views/components/emoji.vue6
3 files changed, 25 insertions, 27 deletions
diff --git a/src/client/app/common/views/components/autocomplete.vue b/src/client/app/common/views/components/autocomplete.vue
index ca6599df2a..40f2534714 100644
--- a/src/client/app/common/views/components/autocomplete.vue
+++ b/src/client/app/common/views/components/autocomplete.vue
@@ -28,9 +28,9 @@
<script lang="ts">
import Vue from 'vue';
-import * as emojilib from 'emojilib';
+import { emojilist } from '../../../../../misc/emojilist';
import contains from '../../../common/scripts/contains';
-import { twemojiBase } from '../../../../../misc/twemoji-base';
+import { twemojiSvgBase } from '../../../../../misc/twemoji-base';
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
type EmojiDef = {
@@ -41,9 +41,7 @@ type EmojiDef = {
isCustomEmoji?: boolean;
};
-const lib = Object.entries(emojilib.lib).filter((x: any) => {
- return x[1].category != 'flags';
-});
+const lib = emojilist.filter(x => x.category !== 'flags');
const char2file = (char: string) => {
let codes = Array.from(char).map(x => x.codePointAt(0).toString(16));
@@ -52,21 +50,21 @@ const char2file = (char: string) => {
return codes.join('-');
};
-const emjdb: EmojiDef[] = lib.map((x: any) => ({
- emoji: x[1].char,
- name: x[0],
+const emjdb: EmojiDef[] = lib.map(x => ({
+ emoji: x.char,
+ name: x.name,
aliasOf: null,
- url: `${twemojiBase}/2/svg/${char2file(x[1].char)}.svg`
+ url: `${twemojiSvgBase}/${char2file(x.char)}.svg`
}));
-for (const x of lib as any) {
- if (x[1].keywords) {
- for (const k of x[1].keywords) {
+for (const x of lib) {
+ if (x.keywords) {
+ for (const k of x.keywords) {
emjdb.push({
- emoji: x[1].char,
+ emoji: x.char,
name: k,
- aliasOf: x[0],
- url: `${twemojiBase}/2/svg/${char2file(x[1].char)}.svg`
+ aliasOf: x.name,
+ url: `${twemojiSvgBase}/${char2file(x.char)}.svg`
});
}
}
@@ -85,7 +83,7 @@ export default Vue.extend({
hashtags: [],
emojis: [],
select: -1,
- emojilib,
+ emojilist,
emojiDb: [] as EmojiDef[]
}
},
diff --git a/src/client/app/common/views/components/emoji-picker.vue b/src/client/app/common/views/components/emoji-picker.vue
index 47d325fbab..88761ae933 100644
--- a/src/client/app/common/views/components/emoji-picker.vue
+++ b/src/client/app/common/views/components/emoji-picker.vue
@@ -5,6 +5,7 @@
:title="category.text"
@click="go(category)"
:class="{ active: category.isActive }"
+ :key="category.text"
>
<fa :icon="category.icon" fixed-width/>
</button>
@@ -12,18 +13,19 @@
<div class="emojis">
<header><fa :icon="categories.find(x => x.isActive).icon" fixed-width/> {{ categories.find(x => x.isActive).text }}</header>
<div v-if="categories.find(x => x.isActive).name">
- <button v-for="emoji in Object.entries(lib).filter(([k, v]) => v.category === categories.find(x => x.isActive).name)"
- :title="emoji[0]"
- @click="chosen(emoji[1].char)"
- :key="emoji[0]"
+ <button v-for="emoji in emojilist.filter(e => e.category === categories.find(x => x.isActive).name)"
+ :title="emoji.name"
+ @click="chosen(emoji.char)"
+ :key="emoji.name"
>
- <mk-emoji :emoji="emoji[1].char"/>
+ <mk-emoji :emoji="emoji.char"/>
</button>
</div>
<div v-else>
<button v-for="emoji in customEmojis"
:title="emoji.name"
@click="chosen(`:${emoji.name}:`)"
+ :key="emoji.name"
>
<img :src="emoji.url" :alt="emoji.name"/>
</button>
@@ -35,7 +37,7 @@
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
-import { lib } from 'emojilib';
+import { emojilist } from '../../../../../misc/emojilist';
import { faAsterisk, faLeaf, faUtensils, faFutbol, faCity, faDice } from '@fortawesome/free-solid-svg-icons';
import { faHeart, faFlag } from '@fortawesome/free-regular-svg-icons';
@@ -44,7 +46,7 @@ export default Vue.extend({
data() {
return {
- lib,
+ emojilist,
customEmojis: [],
categories: [{
text: this.$t('custom-emoji'),
diff --git a/src/client/app/common/views/components/emoji.vue b/src/client/app/common/views/components/emoji.vue
index 20c1ea1a80..26992c5f7e 100644
--- a/src/client/app/common/views/components/emoji.vue
+++ b/src/client/app/common/views/components/emoji.vue
@@ -7,10 +7,8 @@
<script lang="ts">
import Vue from 'vue';
-// スクリプトサイズがデカい
-//import { lib } from 'emojilib';
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
-import { twemojiBase } from '../../../../../misc/twemoji-base';
+import { twemojiSvgBase } from '../../../../../misc/twemoji-base';
export default Vue.extend({
props: {
@@ -92,7 +90,7 @@ export default Vue.extend({
if (!codes.includes('200d')) codes = codes.filter(x => x != 'fe0f');
codes = codes.filter(x => x && x.length);
- this.url = `${twemojiBase}/2/svg/${codes.join('-')}.svg`;
+ this.url = `${twemojiSvgBase}/${codes.join('-')}.svg`;
}
},
});