summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-02-01 11:29:30 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-02-01 11:29:30 +0900
commitdbc23b5d207fea1ebfdd4896c34445e2abcc7e3a (patch)
tree8e29828dc5bcc1bd06d0aefd88dba9947a05460a /packages/frontend/src
parentMerge branch 'develop' (diff)
parent13.2.6 (diff)
downloadmisskey-dbc23b5d207fea1ebfdd4896c34445e2abcc7e3a.tar.gz
misskey-dbc23b5d207fea1ebfdd4896c34445e2abcc7e3a.tar.bz2
misskey-dbc23b5d207fea1ebfdd4896c34445e2abcc7e3a.zip
Merge branch 'develop'
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/components/MkEmojiPicker.vue4
-rw-r--r--packages/frontend/src/components/MkInput.vue2
-rw-r--r--packages/frontend/src/components/MkTextarea.vue2
-rw-r--r--packages/frontend/src/local-storage.ts1
-rw-r--r--packages/frontend/src/pages/flash/flash-edit.vue8
-rw-r--r--packages/frontend/src/scripts/emojilist.ts21
-rw-r--r--packages/frontend/src/ui/classic.vue2
-rw-r--r--packages/frontend/src/ui/universal.vue9
8 files changed, 42 insertions, 7 deletions
diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue
index 39e274ba11..2063ab4dec 100644
--- a/packages/frontend/src/components/MkEmojiPicker.vue
+++ b/packages/frontend/src/components/MkEmojiPicker.vue
@@ -74,7 +74,7 @@
</div>
<div v-once class="group">
<header class="_acrylic">{{ i18n.ts.emoji }}</header>
- <XSection v-for="category in categories" :key="category" :emojis="emojilist.filter(e => e.category === category).map(e => e.char)" @chosen="chosen">{{ category }}</XSection>
+ <XSection v-for="category in categories" :key="category" :emojis="emojiCharByCategory.get(category) ?? []" @chosen="chosen">{{ category }}</XSection>
</div>
</div>
<div class="tabs">
@@ -90,7 +90,7 @@
import { ref, shallowRef, computed, watch, onMounted } from 'vue';
import * as Misskey from 'misskey-js';
import XSection from '@/components/MkEmojiPicker.section.vue';
-import { emojilist, UnicodeEmojiDef, unicodeEmojiCategories as categories } from '@/scripts/emojilist';
+import { emojilist, emojiCharByCategory, UnicodeEmojiDef, unicodeEmojiCategories as categories } from '@/scripts/emojilist';
import MkRippleEffect from '@/components/MkRippleEffect.vue';
import * as os from '@/os';
import { isTouchUsing } from '@/scripts/touch';
diff --git a/packages/frontend/src/components/MkInput.vue b/packages/frontend/src/components/MkInput.vue
index a55003da24..5c5151fce6 100644
--- a/packages/frontend/src/components/MkInput.vue
+++ b/packages/frontend/src/components/MkInput.vue
@@ -88,6 +88,8 @@ const onInput = (ev: KeyboardEvent) => {
emit('change', ev);
};
const onKeydown = (ev: KeyboardEvent) => {
+ if (ev.isComposing || ev.key === 'Process' || ev.keyCode === 229) return;
+
emit('keydown', ev);
if (ev.code === 'Enter') {
diff --git a/packages/frontend/src/components/MkTextarea.vue b/packages/frontend/src/components/MkTextarea.vue
index d34d7b1775..0147ac7f83 100644
--- a/packages/frontend/src/components/MkTextarea.vue
+++ b/packages/frontend/src/components/MkTextarea.vue
@@ -119,6 +119,8 @@ export default defineComponent({
context.emit('change', ev);
};
const onKeydown = (ev: KeyboardEvent) => {
+ if (ev.isComposing || ev.key === 'Process' || ev.keyCode === 229) return;
+
context.emit('keydown', ev);
if (ev.code === 'Enter') {
diff --git a/packages/frontend/src/local-storage.ts b/packages/frontend/src/local-storage.ts
index 68dc9ebe41..e6b828696c 100644
--- a/packages/frontend/src/local-storage.ts
+++ b/packages/frontend/src/local-storage.ts
@@ -18,6 +18,7 @@ type Keys =
'useSystemFont' |
'fontSize' |
'ui' |
+ 'ui_temp' |
'locale' |
'localeVersion' |
'theme' |
diff --git a/packages/frontend/src/pages/flash/flash-edit.vue b/packages/frontend/src/pages/flash/flash-edit.vue
index 321477259b..734c467e3b 100644
--- a/packages/frontend/src/pages/flash/flash-edit.vue
+++ b/packages/frontend/src/pages/flash/flash-edit.vue
@@ -34,7 +34,7 @@ import MkTextarea from '@/components/MkTextarea.vue';
import MkInput from '@/components/MkInput.vue';
import { useRouter } from '@/router';
-const PRESET_DEFAULT = `/// @ 0.12.2
+const PRESET_DEFAULT = `/// @ 0.12.4
var name = ""
@@ -52,7 +52,7 @@ Ui:render([
])
`;
-const PRESET_OMIKUJI = `/// @ 0.12.2
+const PRESET_OMIKUJI = `/// @ 0.12.4
// ユーザーごとに日替わりのおみくじのプリセット
// 選択肢
@@ -95,7 +95,7 @@ Ui:render([
])
`;
-const PRESET_SHUFFLE = `/// @ 0.12.2
+const PRESET_SHUFFLE = `/// @ 0.12.4
// 巻き戻し可能な文字シャッフルのプリセット
let string = "ペペロンチーノ"
@@ -174,7 +174,7 @@ var cursor = 0
do()
`;
-const PRESET_TIMELINE = `/// @ 0.12.2
+const PRESET_TIMELINE = `/// @ 0.12.4
// APIリクエストを行いローカルタイムラインを表示するプリセット
@fetch() {
diff --git a/packages/frontend/src/scripts/emojilist.ts b/packages/frontend/src/scripts/emojilist.ts
index bc52fa7a43..2e853b58b5 100644
--- a/packages/frontend/src/scripts/emojilist.ts
+++ b/packages/frontend/src/scripts/emojilist.ts
@@ -12,6 +12,25 @@ import _emojilist from '../emojilist.json';
export const emojilist = _emojilist as UnicodeEmojiDef[];
+const _indexByChar = new Map<string, number>();
+const _charGroupByCategory = new Map<string, string[]>();
+emojilist.forEach((emo, i) => {
+ _indexByChar.set(emo.char, i);
+
+ if (_charGroupByCategory.has(emo.category)) {
+ _charGroupByCategory.get(emo.category)?.push(emo.char);
+ } else {
+ _charGroupByCategory.set(emo.category, [emo.char]);
+ }
+});
+
+export const emojiCharByCategory = _charGroupByCategory;
+
export function getEmojiName(char: string): string | undefined {
- return emojilist.find(emo => emo.char === char)?.name;
+ const idx = _indexByChar.get(char);
+ if (typeof idx === 'undefined') {
+ return undefined;
+ } else {
+ return emojilist[idx].name;
+ }
}
diff --git a/packages/frontend/src/ui/classic.vue b/packages/frontend/src/ui/classic.vue
index dab4b9b274..a5c2f8ca23 100644
--- a/packages/frontend/src/ui/classic.vue
+++ b/packages/frontend/src/ui/classic.vue
@@ -124,6 +124,8 @@ function onAiClick(ev) {
}
if (window.innerWidth < 1024) {
+ const currentUI = miLocalStorage.getItem('ui')
+ miLocalStorage.setItem('ui_temp', currentUI || 'default');
miLocalStorage.setItem('ui', 'default');
location.reload();
}
diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue
index babc232875..a9bb85ab6a 100644
--- a/packages/frontend/src/ui/universal.vue
+++ b/packages/frontend/src/ui/universal.vue
@@ -141,6 +141,15 @@ mainRouter.on('change', () => {
document.documentElement.style.overflowY = 'scroll';
+if (window.innerWidth > 1024) {
+ const tempUI = miLocalStorage.getItem('ui_temp')
+ if (tempUI) {
+ miLocalStorage.setItem('ui', tempUI)
+ miLocalStorage.removeItem('ui_temp')
+ location.reload();
+ }
+}
+
defaultStore.ready.then(() => {
if (defaultStore.state.widgets.length === 0) {
defaultStore.set('widgets', [{