diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue
index b288cb22f..479d8eb7f 100644
--- a/packages/frontend/src/components/MkEmojiPicker.vue
+++ b/packages/frontend/src/components/MkEmojiPicker.vue
@@ -60,7 +60,15 @@
{{ i18n.ts.customEmojis }}
- {{ category || i18n.ts.other }}
+
+ {{ category || i18n.ts.other }}
+
diff --git a/packages/frontend/src/custom-emojis.ts b/packages/frontend/src/custom-emojis.ts
index 2cd088993..4dd2e0909 100644
--- a/packages/frontend/src/custom-emojis.ts
+++ b/packages/frontend/src/custom-emojis.ts
@@ -1,17 +1,19 @@
import { apiGet } from './os';
import { miLocalStorage } from './local-storage';
-import { shallowRef, computed, markRaw, watch } from 'vue';
+import { shallowRef, computed, markRaw } from 'vue';
import * as Misskey from 'misskey-js';
import { stream } from '@/stream';
const storageCache = miLocalStorage.getItem('emojis');
export const customEmojis = shallowRef(storageCache ? JSON.parse(storageCache) : []);
-export const customEmojiCategories = computed(() => {
+export const customEmojiCategories = computed<[ ...string[], null ]>(() => {
const categories = new Set();
for (const emoji of customEmojis.value) {
- categories.add(emoji.category);
+ if (emoji.category && emoji.category !== 'null') {
+ categories.add(emoji.category);
+ }
}
- return markRaw(Array.from(categories));
+ return markRaw([ ...Array.from(categories), null ]);
});
stream.on('emojiAdded', emojiData => {