diff options
Diffstat (limited to 'packages/frontend')
9 files changed, 22 insertions, 9 deletions
diff --git a/packages/frontend/src/components/MkDraggable.vue b/packages/frontend/src/components/MkDraggable.vue index 07fa1045b9..6e2e038f87 100644 --- a/packages/frontend/src/components/MkDraggable.vue +++ b/packages/frontend/src/components/MkDraggable.vue @@ -109,6 +109,7 @@ function onDragstart(ev: DragEvent, item: T) { // Chromeのバグで、Dragstartハンドラ内ですぐにDOMを変更する(=リアクティブなプロパティを変更する)とDragが終了してしまう // SEE: https://stackoverflow.com/questions/19639969/html5-dragend-event-firing-immediately + // SEE: https://issues.chromium.org/issues/41150279 window.setTimeout(() => { dragging.value = true; }, 10); diff --git a/packages/frontend/src/components/MkForm.vue b/packages/frontend/src/components/MkForm.vue index 1ece0ad4c3..f2360e8cdd 100644 --- a/packages/frontend/src/components/MkForm.vue +++ b/packages/frontend/src/components/MkForm.vue @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only --> <template> -<div v-if="Object.keys(form).filter(item => !form[item].hidden).length > 0" class="_gaps_m"> +<div v-if="Object.values(form).filter(item => typeof item.hidden !== 'boolean' || item.hidden === true).length > 0" class="_gaps_m"> <template v-for="v, k in form"> <template v-if="typeof v.hidden == 'function' ? v.hidden(values) : v.hidden"></template> <MkInput v-else-if="v.type === 'number'" v-model="values[k]" type="number" :step="v.step || 1" :manualSave="v.manualSave" @savingStateChange="(changed, invalid) => onSavingStateChange(k, changed, invalid)"> diff --git a/packages/frontend/src/pages/admin/RolesEditorFormula.vue b/packages/frontend/src/pages/admin/RolesEditorFormula.vue index 13f66662d0..384282262d 100644 --- a/packages/frontend/src/pages/admin/RolesEditorFormula.vue +++ b/packages/frontend/src/pages/admin/RolesEditorFormula.vue @@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only > <template #default="{ item, dragStart }"> <div :class="$style.item"> - <!-- divが無いとエラーになる https://github.com/SortableJS/vue.draggable.next/issues/189 --> + <!-- divが無いとエラーになる --> <RolesEditorFormula :modelValue="item" :dragStartCallback="dragStart" diff --git a/packages/frontend/src/pages/page-editor/page-editor.blocks.vue b/packages/frontend/src/pages/page-editor/page-editor.blocks.vue index 891d29e1df..18f6c40013 100644 --- a/packages/frontend/src/pages/page-editor/page-editor.blocks.vue +++ b/packages/frontend/src/pages/page-editor/page-editor.blocks.vue @@ -14,7 +14,7 @@ SPDX-License-Identifier: AGPL-3.0-only > <template #default="{ item }"> <div> - <!-- divが無いとエラーになる https://github.com/SortableJS/vue.draggable.next/issues/189 --> + <!-- divが無いとエラーになる --> <component :is="getComponent(item.type) as any" :modelValue="item" @update:modelValue="updateItem" @remove="() => removeItem(item)"/> </div> </template> diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue index f9529fa352..abfac37275 100644 --- a/packages/frontend/src/pages/settings/index.vue +++ b/packages/frontend/src/pages/settings/index.vue @@ -51,10 +51,12 @@ import { enableAutoBackup, getPreferencesProfileMenu } from '@/preferences/utili import { store } from '@/store.js'; import { signout } from '@/signout.js'; import { genSearchIndexes } from '@/utility/inapp-search.js'; -import { enableStoragePersistence, storagePersisted, storagePersistenceSupported, skipStoragePersistence } from '@/utility/storage.js'; +import { enableStoragePersistence, getStoragePersistenceStatusRef, storagePersistenceSupported, skipStoragePersistence } from '@/utility/storage.js'; const searchIndex = await import('search-index:settings').then(({ searchIndexes }) => genSearchIndexes(searchIndexes)); +const storagePersisted = await getStoragePersistenceStatusRef(); + const indexInfo = { title: i18n.ts.settings, icon: 'ti ti-settings', diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue index 660647fff7..4facc696a4 100644 --- a/packages/frontend/src/pages/settings/other.vue +++ b/packages/frontend/src/pages/settings/other.vue @@ -165,7 +165,7 @@ import MkKeyValue from '@/components/MkKeyValue.vue'; import MkButton from '@/components/MkButton.vue'; import FormSlot from '@/components/form/slot.vue'; import * as os from '@/os.js'; -import { enableStoragePersistence, storagePersisted, storagePersistenceSupported } from '@/utility/storage.js'; +import { enableStoragePersistence, getStoragePersistenceStatusRef, storagePersistenceSupported } from '@/utility/storage.js'; import { ensureSignin } from '@/i.js'; import { i18n } from '@/i18n.js'; import { definePage } from '@/page.js'; @@ -180,6 +180,8 @@ import { cloudBackup } from '@/preferences/utility.js'; const $i = ensureSignin(); +const storagePersisted = await getStoragePersistenceStatusRef(); + const reportError = prefer.model('reportError'); const enableCondensedLine = prefer.model('enableCondensedLine'); const skipNoteRender = prefer.model('skipNoteRender'); diff --git a/packages/frontend/src/utility/storage.ts b/packages/frontend/src/utility/storage.ts index 86f4b8b3c3..42743f78ea 100644 --- a/packages/frontend/src/utility/storage.ts +++ b/packages/frontend/src/utility/storage.ts @@ -3,13 +3,21 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { ref } from 'vue'; +import { readonly, ref } from 'vue'; import * as os from '@/os.js'; import { store } from '@/store.js'; import { i18n } from '@/i18n.js'; export const storagePersistenceSupported = window.isSecureContext && 'storage' in navigator; -export const storagePersisted = ref(storagePersistenceSupported ? await navigator.storage.persisted() : false); +const storagePersisted = ref(false); + +export async function getStoragePersistenceStatusRef() { + if (storagePersistenceSupported) { + storagePersisted.value = await navigator.storage.persisted().catch(() => false); + } + + return readonly(storagePersisted); +} export async function enableStoragePersistence() { if (!storagePersistenceSupported) return; diff --git a/packages/frontend/src/widgets/WidgetBirthdayFollowings.user.vue b/packages/frontend/src/widgets/WidgetBirthdayFollowings.user.vue index dc8ffcc818..2b714c2f6c 100644 --- a/packages/frontend/src/widgets/WidgetBirthdayFollowings.user.vue +++ b/packages/frontend/src/widgets/WidgetBirthdayFollowings.user.vue @@ -30,7 +30,7 @@ import { useLowresTime } from '@/composables/use-lowres-time.js'; import { userPage, acct } from '@/filters/user.js'; const props = defineProps<{ - item: Misskey.entities.UsersGetFollowingBirthdayUsersResponse[number]; + item: Misskey.entities.UsersGetFollowingUsersByBirthdayResponse[number]; }>(); const now = useLowresTime(); diff --git a/packages/frontend/src/widgets/WidgetBirthdayFollowings.vue b/packages/frontend/src/widgets/WidgetBirthdayFollowings.vue index ea577f3219..cf9c5a3d35 100644 --- a/packages/frontend/src/widgets/WidgetBirthdayFollowings.vue +++ b/packages/frontend/src/widgets/WidgetBirthdayFollowings.vue @@ -106,7 +106,7 @@ const end = computed(() => { } }); -const birthdayUsersPaginator = markRaw(new Paginator('users/get-following-birthday-users', { +const birthdayUsersPaginator = markRaw(new Paginator('users/get-following-users-by-birthday', { limit: 18, offsetMode: true, computedParams: computed(() => { |