diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-01 11:29:30 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-01 11:29:30 +0900 |
| commit | dbc23b5d207fea1ebfdd4896c34445e2abcc7e3a (patch) | |
| tree | 8e29828dc5bcc1bd06d0aefd88dba9947a05460a /packages/frontend/src | |
| parent | Merge branch 'develop' (diff) | |
| parent | 13.2.6 (diff) | |
| download | misskey-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.vue | 4 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkInput.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkTextarea.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/local-storage.ts | 1 | ||||
| -rw-r--r-- | packages/frontend/src/pages/flash/flash-edit.vue | 8 | ||||
| -rw-r--r-- | packages/frontend/src/scripts/emojilist.ts | 21 | ||||
| -rw-r--r-- | packages/frontend/src/ui/classic.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/ui/universal.vue | 9 |
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', [{ |