summaryrefslogtreecommitdiff
path: root/packages/frontend
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-03-10 13:47:38 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-03-10 13:47:38 +0900
commit9998cb84e80c98a399c68dd79d553f0cdfca78c7 (patch)
tree9df72fc1dfa1f307aa053c1a243231920ff31e97 /packages/frontend
parentchore(deps): update [root] update dependencies (#15624) (diff)
downloadsharkey-9998cb84e80c98a399c68dd79d553f0cdfca78c7.tar.gz
sharkey-9998cb84e80c98a399c68dd79d553f0cdfca78c7.tar.bz2
sharkey-9998cb84e80c98a399c68dd79d553f0cdfca78c7.zip
refactor(frontend): page-metadata -> page
Diffstat (limited to 'packages/frontend')
-rw-r--r--packages/frontend/src/components/MkPageWindow.vue4
-rw-r--r--packages/frontend/src/components/global/MkPageHeader.vue4
-rw-r--r--packages/frontend/src/page.ts (renamed from packages/frontend/src/utility/page-metadata.ts)2
-rw-r--r--packages/frontend/src/pages/_error_.vue4
-rw-r--r--packages/frontend/src/pages/about-misskey.vue4
-rw-r--r--packages/frontend/src/pages/about.vue4
-rw-r--r--packages/frontend/src/pages/achievements.vue4
-rw-r--r--packages/frontend/src/pages/admin-file.vue4
-rw-r--r--packages/frontend/src/pages/admin-user.vue4
-rw-r--r--packages/frontend/src/pages/admin/_header_.vue2
-rw-r--r--packages/frontend/src/pages/admin/abuses.vue4
-rw-r--r--packages/frontend/src/pages/admin/ads.vue4
-rw-r--r--packages/frontend/src/pages/admin/announcements.vue4
-rw-r--r--packages/frontend/src/pages/admin/branding.vue4
-rw-r--r--packages/frontend/src/pages/admin/custom-emojis-manager2.vue4
-rw-r--r--packages/frontend/src/pages/admin/database.vue4
-rw-r--r--packages/frontend/src/pages/admin/email-settings.vue4
-rw-r--r--packages/frontend/src/pages/admin/external-services.vue4
-rw-r--r--packages/frontend/src/pages/admin/federation.vue4
-rw-r--r--packages/frontend/src/pages/admin/files.vue4
-rw-r--r--packages/frontend/src/pages/admin/index.vue6
-rw-r--r--packages/frontend/src/pages/admin/invites.vue4
-rw-r--r--packages/frontend/src/pages/admin/moderation.vue4
-rw-r--r--packages/frontend/src/pages/admin/modlog.vue4
-rw-r--r--packages/frontend/src/pages/admin/object-storage.vue4
-rw-r--r--packages/frontend/src/pages/admin/overview.vue4
-rw-r--r--packages/frontend/src/pages/admin/performance.vue4
-rw-r--r--packages/frontend/src/pages/admin/queue.vue4
-rw-r--r--packages/frontend/src/pages/admin/relays.vue4
-rw-r--r--packages/frontend/src/pages/admin/roles.edit.vue4
-rw-r--r--packages/frontend/src/pages/admin/roles.role.vue4
-rw-r--r--packages/frontend/src/pages/admin/roles.vue4
-rw-r--r--packages/frontend/src/pages/admin/security.vue4
-rw-r--r--packages/frontend/src/pages/admin/server-rules.vue4
-rw-r--r--packages/frontend/src/pages/admin/settings.vue4
-rw-r--r--packages/frontend/src/pages/admin/system-webhook.vue4
-rw-r--r--packages/frontend/src/pages/admin/users.vue4
-rw-r--r--packages/frontend/src/pages/ads.vue4
-rw-r--r--packages/frontend/src/pages/announcement.vue4
-rw-r--r--packages/frontend/src/pages/announcements.vue4
-rw-r--r--packages/frontend/src/pages/antenna-timeline.vue4
-rw-r--r--packages/frontend/src/pages/api-console.vue4
-rw-r--r--packages/frontend/src/pages/auth.vue4
-rw-r--r--packages/frontend/src/pages/avatar-decorations.vue4
-rw-r--r--packages/frontend/src/pages/channel-editor.vue4
-rw-r--r--packages/frontend/src/pages/channel.vue4
-rw-r--r--packages/frontend/src/pages/channels.vue4
-rw-r--r--packages/frontend/src/pages/clicker.vue4
-rw-r--r--packages/frontend/src/pages/clip.vue4
-rw-r--r--packages/frontend/src/pages/contact.vue4
-rw-r--r--packages/frontend/src/pages/custom-emojis-manager.vue4
-rw-r--r--packages/frontend/src/pages/drive.file.vue4
-rw-r--r--packages/frontend/src/pages/drive.vue4
-rw-r--r--packages/frontend/src/pages/drop-and-fusion.game.vue4
-rw-r--r--packages/frontend/src/pages/drop-and-fusion.vue4
-rw-r--r--packages/frontend/src/pages/explore.vue4
-rw-r--r--packages/frontend/src/pages/favorites.vue4
-rw-r--r--packages/frontend/src/pages/flash/flash-edit.vue4
-rw-r--r--packages/frontend/src/pages/flash/flash-index.vue4
-rw-r--r--packages/frontend/src/pages/flash/flash.vue4
-rw-r--r--packages/frontend/src/pages/follow-requests.vue4
-rw-r--r--packages/frontend/src/pages/gallery/edit.vue4
-rw-r--r--packages/frontend/src/pages/gallery/index.vue4
-rw-r--r--packages/frontend/src/pages/gallery/post.vue4
-rw-r--r--packages/frontend/src/pages/games.vue4
-rw-r--r--packages/frontend/src/pages/install-extensions.vue4
-rw-r--r--packages/frontend/src/pages/instance-info.vue4
-rw-r--r--packages/frontend/src/pages/invite.vue4
-rw-r--r--packages/frontend/src/pages/list.vue4
-rw-r--r--packages/frontend/src/pages/lookup.vue4
-rw-r--r--packages/frontend/src/pages/miauth.vue4
-rw-r--r--packages/frontend/src/pages/my-antennas/create.vue4
-rw-r--r--packages/frontend/src/pages/my-antennas/edit.vue4
-rw-r--r--packages/frontend/src/pages/my-antennas/index.vue4
-rw-r--r--packages/frontend/src/pages/my-clips/index.vue4
-rw-r--r--packages/frontend/src/pages/my-lists/index.vue4
-rw-r--r--packages/frontend/src/pages/my-lists/list.vue4
-rw-r--r--packages/frontend/src/pages/not-found.vue4
-rw-r--r--packages/frontend/src/pages/note.vue4
-rw-r--r--packages/frontend/src/pages/notifications.vue4
-rw-r--r--packages/frontend/src/pages/oauth.vue4
-rw-r--r--packages/frontend/src/pages/page-editor/page-editor.vue4
-rw-r--r--packages/frontend/src/pages/page.vue4
-rw-r--r--packages/frontend/src/pages/pages.vue4
-rw-r--r--packages/frontend/src/pages/preview.vue4
-rw-r--r--packages/frontend/src/pages/registry.keys.vue4
-rw-r--r--packages/frontend/src/pages/registry.value.vue4
-rw-r--r--packages/frontend/src/pages/registry.vue4
-rw-r--r--packages/frontend/src/pages/reset-password.vue4
-rw-r--r--packages/frontend/src/pages/reversi/game.vue4
-rw-r--r--packages/frontend/src/pages/reversi/index.vue4
-rw-r--r--packages/frontend/src/pages/role.vue4
-rw-r--r--packages/frontend/src/pages/scratchpad.vue4
-rw-r--r--packages/frontend/src/pages/search.vue4
-rw-r--r--packages/frontend/src/pages/settings/accessibility.vue4
-rw-r--r--packages/frontend/src/pages/settings/accounts.vue4
-rw-r--r--packages/frontend/src/pages/settings/api.vue4
-rw-r--r--packages/frontend/src/pages/settings/appearance.vue4
-rw-r--r--packages/frontend/src/pages/settings/apps.vue4
-rw-r--r--packages/frontend/src/pages/settings/avatar-decoration.vue4
-rw-r--r--packages/frontend/src/pages/settings/custom-css.vue4
-rw-r--r--packages/frontend/src/pages/settings/deck.vue4
-rw-r--r--packages/frontend/src/pages/settings/drive-cleaner.vue4
-rw-r--r--packages/frontend/src/pages/settings/drive.vue4
-rw-r--r--packages/frontend/src/pages/settings/email.vue4
-rw-r--r--packages/frontend/src/pages/settings/emoji-picker.vue4
-rw-r--r--packages/frontend/src/pages/settings/import-export.vue4
-rw-r--r--packages/frontend/src/pages/settings/index.vue6
-rw-r--r--packages/frontend/src/pages/settings/mute-block.vue4
-rw-r--r--packages/frontend/src/pages/settings/navbar.vue4
-rw-r--r--packages/frontend/src/pages/settings/notifications.vue4
-rw-r--r--packages/frontend/src/pages/settings/other.vue4
-rw-r--r--packages/frontend/src/pages/settings/plugin.install.vue4
-rw-r--r--packages/frontend/src/pages/settings/plugin.vue4
-rw-r--r--packages/frontend/src/pages/settings/preferences.vue4
-rw-r--r--packages/frontend/src/pages/settings/privacy.vue4
-rw-r--r--packages/frontend/src/pages/settings/profile.vue4
-rw-r--r--packages/frontend/src/pages/settings/roles.vue4
-rw-r--r--packages/frontend/src/pages/settings/security.vue4
-rw-r--r--packages/frontend/src/pages/settings/sounds.vue4
-rw-r--r--packages/frontend/src/pages/settings/statusbar.vue4
-rw-r--r--packages/frontend/src/pages/settings/theme.install.vue4
-rw-r--r--packages/frontend/src/pages/settings/theme.manage.vue4
-rw-r--r--packages/frontend/src/pages/settings/theme.vue4
-rw-r--r--packages/frontend/src/pages/settings/webhook.edit.vue4
-rw-r--r--packages/frontend/src/pages/settings/webhook.new.vue4
-rw-r--r--packages/frontend/src/pages/settings/webhook.vue4
-rw-r--r--packages/frontend/src/pages/share.vue4
-rw-r--r--packages/frontend/src/pages/tag.vue4
-rw-r--r--packages/frontend/src/pages/theme-editor.vue4
-rw-r--r--packages/frontend/src/pages/timeline.vue4
-rw-r--r--packages/frontend/src/pages/user-list-timeline.vue4
-rw-r--r--packages/frontend/src/pages/user-tag.vue4
-rw-r--r--packages/frontend/src/pages/user/followers.vue4
-rw-r--r--packages/frontend/src/pages/user/following.vue4
-rw-r--r--packages/frontend/src/pages/user/index.vue4
-rw-r--r--packages/frontend/src/pages/welcome.vue4
-rw-r--r--packages/frontend/src/ui/classic.vue4
-rw-r--r--packages/frontend/src/ui/deck/main-column.vue4
-rw-r--r--packages/frontend/src/ui/minimum.vue4
-rw-r--r--packages/frontend/src/ui/universal.vue4
-rw-r--r--packages/frontend/src/ui/visitor.vue4
-rw-r--r--packages/frontend/src/ui/zen.vue4
143 files changed, 286 insertions, 286 deletions
diff --git a/packages/frontend/src/components/MkPageWindow.vue b/packages/frontend/src/components/MkPageWindow.vue
index 780b434456..5c0fa60847 100644
--- a/packages/frontend/src/components/MkPageWindow.vue
+++ b/packages/frontend/src/components/MkPageWindow.vue
@@ -32,14 +32,14 @@ SPDX-License-Identifier: AGPL-3.0-only
import { computed, onMounted, onUnmounted, provide, ref, shallowRef } from 'vue';
import { url } from '@@/js/config.js';
import { getScrollContainer } from '@@/js/scroll.js';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import RouterView from '@/components/global/RouterView.vue';
import MkWindow from '@/components/MkWindow.vue';
import { popout as _popout } from '@/utility/popout.js';
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
import { useScrollPositionManager } from '@/nirax.js';
import { i18n } from '@/i18n.js';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import { openingWindowsCount } from '@/os.js';
import { claimAchievement } from '@/utility/achievements.js';
import { useRouterFactory } from '@/router/supplier.js';
diff --git a/packages/frontend/src/components/global/MkPageHeader.vue b/packages/frontend/src/components/global/MkPageHeader.vue
index d3c64bf85a..728e37cf51 100644
--- a/packages/frontend/src/components/global/MkPageHeader.vue
+++ b/packages/frontend/src/components/global/MkPageHeader.vue
@@ -47,9 +47,9 @@ import { scrollToTop } from '@@/js/scroll.js';
import XTabs from './MkPageHeader.tabs.vue';
import type { Tab } from './MkPageHeader.tabs.vue';
import type { PageHeaderItem } from '@/types/page-header.js';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import { globalEvents } from '@/events.js';
-import { injectReactiveMetadata } from '@/utility/page-metadata.js';
+import { injectReactiveMetadata } from '@/page.js';
import { $i, openAccountMenu as openAccountMenu_ } from '@/account.js';
const props = withDefaults(defineProps<{
diff --git a/packages/frontend/src/utility/page-metadata.ts b/packages/frontend/src/page.ts
index 671751147c..f3ec09a16f 100644
--- a/packages/frontend/src/utility/page-metadata.ts
+++ b/packages/frontend/src/page.ts
@@ -35,7 +35,7 @@ const getMetadata = (): Ref<PageMetadata | null> | undefined => {
return inject<Ref<PageMetadata | null>>(METADATA_KEY);
};
-export const definePageMetadata = (maybeRefOrGetterMetadata: MaybeRefOrGetter<PageMetadata>): void => {
+export const definePage = (maybeRefOrGetterMetadata: MaybeRefOrGetter<PageMetadata>): void => {
const metadataRef = ref(toValue(maybeRefOrGetterMetadata));
const metadataGetter = () => metadataRef.value;
const receiver = getReceiver();
diff --git a/packages/frontend/src/pages/_error_.vue b/packages/frontend/src/pages/_error_.vue
index 05fa8a8a6b..066980db1f 100644
--- a/packages/frontend/src/pages/_error_.vue
+++ b/packages/frontend/src/pages/_error_.vue
@@ -33,7 +33,7 @@ import MkLink from '@/components/MkLink.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
import { unisonReload } from '@/utility/unison-reload.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { miLocalStorage } from '@/local-storage.js';
import { prefer } from '@/preferences.js';
import { serverErrorImageUrl } from '@/instance.js';
@@ -67,7 +67,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.error,
icon: 'ti ti-alert-triangle',
}));
diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue
index 5316398ba4..55d703b9ea 100644
--- a/packages/frontend/src/pages/about-misskey.vue
+++ b/packages/frontend/src/pages/about-misskey.vue
@@ -145,7 +145,7 @@ import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
import { store } from '@/store.js';
import * as os from '@/os.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { claimAchievement, claimedAchievements } from '@/utility/achievements.js';
import { $i } from '@/account.js';
@@ -450,7 +450,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.aboutMisskey,
icon: null,
}));
diff --git a/packages/frontend/src/pages/about.vue b/packages/frontend/src/pages/about.vue
index 11a2ed4062..d6833a3d97 100644
--- a/packages/frontend/src/pages/about.vue
+++ b/packages/frontend/src/pages/about.vue
@@ -28,7 +28,7 @@ import { computed, defineAsyncComponent, ref, watch } from 'vue';
import { instance } from '@/instance.js';
import { i18n } from '@/i18n.js';
import { claimAchievement } from '@/utility/achievements.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
const XOverview = defineAsyncComponent(() => import('@/pages/about.overview.vue'));
@@ -81,7 +81,7 @@ const headerTabs = computed(() => {
return items;
});
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.instanceInfo,
icon: 'ti ti-info-circle',
}));
diff --git a/packages/frontend/src/pages/achievements.vue b/packages/frontend/src/pages/achievements.vue
index f23046b476..53ce75f9bf 100644
--- a/packages/frontend/src/pages/achievements.vue
+++ b/packages/frontend/src/pages/achievements.vue
@@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { onActivated, onDeactivated, onMounted, onUnmounted } from 'vue';
import MkAchievements from '@/components/MkAchievements.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { $i } from '@/account.js';
import { claimAchievement } from '@/utility/achievements.js';
@@ -48,7 +48,7 @@ onDeactivated(() => {
}
});
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.achievements,
icon: 'ti ti-medal',
}));
diff --git a/packages/frontend/src/pages/admin-file.vue b/packages/frontend/src/pages/admin-file.vue
index 46a5388e7e..0af28e94fa 100644
--- a/packages/frontend/src/pages/admin-file.vue
+++ b/packages/frontend/src/pages/admin-file.vue
@@ -85,7 +85,7 @@ import bytes from '@/filters/bytes.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { iAmAdmin, iAmModerator } from '@/account.js';
const tab = ref('overview');
@@ -161,7 +161,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-code',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: file.value ? `${i18n.ts.file}: ${file.value.name}` : i18n.ts.file,
icon: 'ti ti-file',
}));
diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue
index e1da305b84..2efae999ce 100644
--- a/packages/frontend/src/pages/admin-user.vue
+++ b/packages/frontend/src/pages/admin-user.vue
@@ -231,7 +231,7 @@ import MkInfo from '@/components/MkInfo.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { acct } from '@/filters/user.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { iAmAdmin, $i, iAmModerator } from '@/account.js';
import MkRolePreview from '@/components/MkRolePreview.vue';
@@ -545,7 +545,7 @@ const headerTabs = computed(() => isSystem.value ? [{
icon: 'ti ti-code',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: user.value ? acct(user.value) : i18n.ts.userInfo,
icon: 'ti ti-user-exclamation',
}));
diff --git a/packages/frontend/src/pages/admin/_header_.vue b/packages/frontend/src/pages/admin/_header_.vue
index d5dac40e86..1382cad9a4 100644
--- a/packages/frontend/src/pages/admin/_header_.vue
+++ b/packages/frontend/src/pages/admin/_header_.vue
@@ -39,7 +39,7 @@ import { scrollToTop } from '@@/js/scroll.js';
import { popupMenu } from '@/os.js';
import MkButton from '@/components/MkButton.vue';
import { globalEvents } from '@/events.js';
-import { injectReactiveMetadata } from '@/utility/page-metadata.js';
+import { injectReactiveMetadata } from '@/page.js';
type Tab = {
key?: string | null;
diff --git a/packages/frontend/src/pages/admin/abuses.vue b/packages/frontend/src/pages/admin/abuses.vue
index 8b396c1821..e4119bb62d 100644
--- a/packages/frontend/src/pages/admin/abuses.vue
+++ b/packages/frontend/src/pages/admin/abuses.vue
@@ -65,7 +65,7 @@ import MkSelect from '@/components/MkSelect.vue';
import MkPagination from '@/components/MkPagination.vue';
import XAbuseReport from '@/components/MkAbuseReport.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import MkInfo from '@/components/MkInfo.vue';
import { store } from '@/store.js';
@@ -100,7 +100,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.abuseReports,
icon: 'ti ti-exclamation-circle',
}));
diff --git a/packages/frontend/src/pages/admin/ads.vue b/packages/frontend/src/pages/admin/ads.vue
index d707e15c61..ebc3d23296 100644
--- a/packages/frontend/src/pages/admin/ads.vue
+++ b/packages/frontend/src/pages/admin/ads.vue
@@ -98,7 +98,7 @@ import FormSplit from '@/components/form/split.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const ads = ref<Misskey.entities.Ad[]>([]);
@@ -255,7 +255,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.ads,
icon: 'ti ti-ad',
}));
diff --git a/packages/frontend/src/pages/admin/announcements.vue b/packages/frontend/src/pages/admin/announcements.vue
index 48a072bc8a..f6b331455f 100644
--- a/packages/frontend/src/pages/admin/announcements.vue
+++ b/packages/frontend/src/pages/admin/announcements.vue
@@ -96,7 +96,7 @@ import MkInfo from '@/components/MkInfo.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkFolder from '@/components/MkFolder.vue';
import MkTextarea from '@/components/MkTextarea.vue';
@@ -199,7 +199,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.announcements,
icon: 'ti ti-speakerphone',
}));
diff --git a/packages/frontend/src/pages/admin/branding.vue b/packages/frontend/src/pages/admin/branding.vue
index 02f08ecc05..0ac45914e8 100644
--- a/packages/frontend/src/pages/admin/branding.vue
+++ b/packages/frontend/src/pages/admin/branding.vue
@@ -114,7 +114,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { instance, fetchInstance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import MkColorInput from '@/components/MkColorInput.vue';
import { host } from '@@/js/config.js';
@@ -175,7 +175,7 @@ function save() {
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.branding,
icon: 'ti ti-paint',
}));
diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager2.vue b/packages/frontend/src/pages/admin/custom-emojis-manager2.vue
index f75393baac..7667206fa8 100644
--- a/packages/frontend/src/pages/admin/custom-emojis-manager2.vue
+++ b/packages/frontend/src/pages/admin/custom-emojis-manager2.vue
@@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script setup lang="ts">
import { computed, ref } from 'vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import XGridLocalComponent from '@/pages/admin/custom-emojis-manager.local.vue';
import XGridRemoteComponent from '@/pages/admin/custom-emojis-manager.remote.vue';
import MkPageHeader from '@/components/global/MkPageHeader.vue';
@@ -36,7 +36,7 @@ const headerTabs = computed(() => [{
title: i18n.ts.remote,
}]);
-definePageMetadata(computed(() => ({
+definePage(computed(() => ({
title: i18n.ts.customEmojis,
icon: 'ti ti-icons',
needWideArea: true,
diff --git a/packages/frontend/src/pages/admin/database.vue b/packages/frontend/src/pages/admin/database.vue
index 807a4cc401..1d8803d8c1 100644
--- a/packages/frontend/src/pages/admin/database.vue
+++ b/packages/frontend/src/pages/admin/database.vue
@@ -25,7 +25,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import bytes from '@/filters/bytes.js';
import number from '@/filters/number.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const databasePromiseFactory = () => misskeyApi('admin/get-table-stats').then(res => Object.entries(res).sort((a, b) => b[1].size - a[1].size));
@@ -33,7 +33,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.database,
icon: 'ti ti-database',
}));
diff --git a/packages/frontend/src/pages/admin/email-settings.vue b/packages/frontend/src/pages/admin/email-settings.vue
index 930c174121..ab584ba9da 100644
--- a/packages/frontend/src/pages/admin/email-settings.vue
+++ b/packages/frontend/src/pages/admin/email-settings.vue
@@ -76,7 +76,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance, instance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
const enableEmail = ref<boolean>(false);
@@ -130,7 +130,7 @@ function save() {
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.emailServer,
icon: 'ti ti-mail',
}));
diff --git a/packages/frontend/src/pages/admin/external-services.vue b/packages/frontend/src/pages/admin/external-services.vue
index 559b73db16..a6557114dc 100644
--- a/packages/frontend/src/pages/admin/external-services.vue
+++ b/packages/frontend/src/pages/admin/external-services.vue
@@ -52,7 +52,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkFolder from '@/components/MkFolder.vue';
const deeplAuthKey = ref<string>('');
@@ -88,7 +88,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.externalServices,
icon: 'ti ti-link',
}));
diff --git a/packages/frontend/src/pages/admin/federation.vue b/packages/frontend/src/pages/admin/federation.vue
index 7fef797c62..7f6424225b 100644
--- a/packages/frontend/src/pages/admin/federation.vue
+++ b/packages/frontend/src/pages/admin/federation.vue
@@ -67,7 +67,7 @@ import MkPagination from '@/components/MkPagination.vue';
import MkInstanceCardMini from '@/components/MkInstanceCardMini.vue';
import FormSplit from '@/components/form/split.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const host = ref('');
const state = ref('federating');
@@ -112,7 +112,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.federation,
icon: 'ti ti-whirl',
}));
diff --git a/packages/frontend/src/pages/admin/files.vue b/packages/frontend/src/pages/admin/files.vue
index f9955e8d13..e15724c2a7 100644
--- a/packages/frontend/src/pages/admin/files.vue
+++ b/packages/frontend/src/pages/admin/files.vue
@@ -44,7 +44,7 @@ import MkFileListForAdmin from '@/components/MkFileListForAdmin.vue';
import * as os from '@/os.js';
import { lookupFile } from '@/utility/admin-lookup.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const origin = ref('local');
const type = ref<string | null>(null);
@@ -85,7 +85,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.files,
icon: 'ti ti-cloud',
}));
diff --git a/packages/frontend/src/pages/admin/index.vue b/packages/frontend/src/pages/admin/index.vue
index 26159a97d7..5c47ea8ddc 100644
--- a/packages/frontend/src/pages/admin/index.vue
+++ b/packages/frontend/src/pages/admin/index.vue
@@ -41,8 +41,8 @@ import { lookup } from '@/utility/lookup.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { lookupUser, lookupUserByEmail, lookupFile } from '@/utility/admin-lookup.js';
-import { definePageMetadata, provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import { definePage, provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
+import type { PageMetadata } from '@/page.js';
import { useRouter } from '@/router/supplier.js';
const isEmpty = (x: string | null) => x == null || x === '';
@@ -318,7 +318,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => INFO.value);
+definePage(() => INFO.value);
defineExpose({
header: {
diff --git a/packages/frontend/src/pages/admin/invites.vue b/packages/frontend/src/pages/admin/invites.vue
index 80bb101e67..069ed6e1f3 100644
--- a/packages/frontend/src/pages/admin/invites.vue
+++ b/packages/frontend/src/pages/admin/invites.vue
@@ -68,7 +68,7 @@ import MkSwitch from '@/components/MkSwitch.vue';
import MkPagination from '@/components/MkPagination.vue';
import type { Paging } from '@/components/MkPagination.vue';
import MkInviteCode from '@/components/MkInviteCode.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const pagingComponent = shallowRef<InstanceType<typeof MkPagination>>();
@@ -114,7 +114,7 @@ function deleted(id: string) {
const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.invite,
icon: 'ti ti-user-plus',
}));
diff --git a/packages/frontend/src/pages/admin/moderation.vue b/packages/frontend/src/pages/admin/moderation.vue
index 001af0e059..3507758b6e 100644
--- a/packages/frontend/src/pages/admin/moderation.vue
+++ b/packages/frontend/src/pages/admin/moderation.vue
@@ -137,7 +137,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import FormLink from '@/components/form/link.vue';
import MkFolder from '@/components/MkFolder.vue';
@@ -259,7 +259,7 @@ function save_mediaSilencedHosts() {
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.moderation,
icon: 'ti ti-shield',
}));
diff --git a/packages/frontend/src/pages/admin/modlog.vue b/packages/frontend/src/pages/admin/modlog.vue
index 9bde2b5978..ae7022a1c9 100644
--- a/packages/frontend/src/pages/admin/modlog.vue
+++ b/packages/frontend/src/pages/admin/modlog.vue
@@ -38,7 +38,7 @@ import MkSelect from '@/components/MkSelect.vue';
import MkInput from '@/components/MkInput.vue';
import MkPagination from '@/components/MkPagination.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkDateSeparatedList from '@/components/MkDateSeparatedList.vue';
const logs = shallowRef<InstanceType<typeof MkPagination>>();
@@ -59,7 +59,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.moderationLogs,
icon: 'ti ti-list-search',
}));
diff --git a/packages/frontend/src/pages/admin/object-storage.vue b/packages/frontend/src/pages/admin/object-storage.vue
index 6347673704..da96eb4881 100644
--- a/packages/frontend/src/pages/admin/object-storage.vue
+++ b/packages/frontend/src/pages/admin/object-storage.vue
@@ -93,7 +93,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
const useObjectStorage = ref<boolean>(false);
@@ -149,7 +149,7 @@ function save() {
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.objectStorage,
icon: 'ti ti-cloud',
}));
diff --git a/packages/frontend/src/pages/admin/overview.vue b/packages/frontend/src/pages/admin/overview.vue
index 3c0f3d0769..c23662572a 100644
--- a/packages/frontend/src/pages/admin/overview.vue
+++ b/packages/frontend/src/pages/admin/overview.vue
@@ -82,7 +82,7 @@ import * as os from '@/os.js';
import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js';
import { useStream } from '@/stream.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
const rootEl = shallowRef<HTMLElement>();
@@ -184,7 +184,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.dashboard,
icon: 'ti ti-dashboard',
}));
diff --git a/packages/frontend/src/pages/admin/performance.vue b/packages/frontend/src/pages/admin/performance.vue
index cf9448a813..8fa2c61613 100644
--- a/packages/frontend/src/pages/admin/performance.vue
+++ b/packages/frontend/src/pages/admin/performance.vue
@@ -114,7 +114,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkSwitch from '@/components/MkSwitch.vue';
import MkFolder from '@/components/MkFolder.vue';
import MkInput from '@/components/MkInput.vue';
@@ -202,7 +202,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.other,
icon: 'ti ti-adjustments',
}));
diff --git a/packages/frontend/src/pages/admin/queue.vue b/packages/frontend/src/pages/admin/queue.vue
index e5b62e566b..65d728e776 100644
--- a/packages/frontend/src/pages/admin/queue.vue
+++ b/packages/frontend/src/pages/admin/queue.vue
@@ -23,7 +23,7 @@ import XHeader from './_header_.vue';
import * as os from '@/os.js';
import * as config from '@@/js/config.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
export type ApQueueDomain = 'deliver' | 'inbox';
@@ -71,7 +71,7 @@ const headerTabs = computed(() => [{
title: 'Inbox',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.jobQueue,
icon: 'ti ti-clock-play',
}));
diff --git a/packages/frontend/src/pages/admin/relays.vue b/packages/frontend/src/pages/admin/relays.vue
index 8a6a46934d..a6280e7075 100644
--- a/packages/frontend/src/pages/admin/relays.vue
+++ b/packages/frontend/src/pages/admin/relays.vue
@@ -31,7 +31,7 @@ import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const relays = ref<Misskey.entities.AdminRelaysListResponse>([]);
@@ -84,7 +84,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.relays,
icon: 'ti ti-planet',
}));
diff --git a/packages/frontend/src/pages/admin/roles.edit.vue b/packages/frontend/src/pages/admin/roles.edit.vue
index 87aff1e1ef..129fabf489 100644
--- a/packages/frontend/src/pages/admin/roles.edit.vue
+++ b/packages/frontend/src/pages/admin/roles.edit.vue
@@ -30,7 +30,7 @@ import XEditor from './roles.editor.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import { rolesCache } from '@/cache.js';
import { useRouter } from '@/router/supplier.js';
@@ -87,7 +87,7 @@ async function save() {
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: role.value ? `${i18n.ts._role.edit}: ${role.value.name}` : i18n.ts._role.new,
icon: 'ti ti-badge',
}));
diff --git a/packages/frontend/src/pages/admin/roles.role.vue b/packages/frontend/src/pages/admin/roles.role.vue
index 4efcab37cb..43c3446b73 100644
--- a/packages/frontend/src/pages/admin/roles.role.vue
+++ b/packages/frontend/src/pages/admin/roles.role.vue
@@ -69,7 +69,7 @@ import MkFolder from '@/components/MkFolder.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
import MkInfo from '@/components/MkInfo.vue';
@@ -170,7 +170,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: `${i18n.ts.role}: ${role.name}`,
icon: 'ti ti-badge',
}));
diff --git a/packages/frontend/src/pages/admin/roles.vue b/packages/frontend/src/pages/admin/roles.vue
index 1b183d67c8..e16fca8286 100644
--- a/packages/frontend/src/pages/admin/roles.vue
+++ b/packages/frontend/src/pages/admin/roles.vue
@@ -292,7 +292,7 @@ import MkRolePreview from '@/components/MkRolePreview.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { instance, fetchInstance } from '@/instance.js';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
import { useRouter } from '@/router/supplier.js';
@@ -338,7 +338,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.roles,
icon: 'ti ti-badges',
}));
diff --git a/packages/frontend/src/pages/admin/security.vue b/packages/frontend/src/pages/admin/security.vue
index 3eaf0fb358..85dcec6b2e 100644
--- a/packages/frontend/src/pages/admin/security.vue
+++ b/packages/frontend/src/pages/admin/security.vue
@@ -134,7 +134,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useForm } from '@/utility/use-form.js';
import MkFormFooter from '@/components/MkFormFooter.vue';
@@ -206,7 +206,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.security,
icon: 'ti ti-lock',
}));
diff --git a/packages/frontend/src/pages/admin/server-rules.vue b/packages/frontend/src/pages/admin/server-rules.vue
index 314a2be517..b8722d4112 100644
--- a/packages/frontend/src/pages/admin/server-rules.vue
+++ b/packages/frontend/src/pages/admin/server-rules.vue
@@ -46,7 +46,7 @@ import XHeader from './_header_.vue';
import * as os from '@/os.js';
import { fetchInstance, instance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import MkInput from '@/components/MkInput.vue';
@@ -67,7 +67,7 @@ const remove = (index: number): void => {
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.serverRules,
icon: 'ti ti-checkbox',
}));
diff --git a/packages/frontend/src/pages/admin/settings.vue b/packages/frontend/src/pages/admin/settings.vue
index 06b52f11b9..8c89664671 100644
--- a/packages/frontend/src/pages/admin/settings.vue
+++ b/packages/frontend/src/pages/admin/settings.vue
@@ -269,7 +269,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { fetchInstance, instance } from '@/instance.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import MkFolder from '@/components/MkFolder.vue';
import MkKeyValue from '@/components/MkKeyValue.vue';
@@ -391,7 +391,7 @@ const proxyAccountForm = useForm({
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.general,
icon: 'ti ti-settings',
}));
diff --git a/packages/frontend/src/pages/admin/system-webhook.vue b/packages/frontend/src/pages/admin/system-webhook.vue
index 26db61cb0b..d8eb9b92ee 100644
--- a/packages/frontend/src/pages/admin/system-webhook.vue
+++ b/packages/frontend/src/pages/admin/system-webhook.vue
@@ -30,7 +30,7 @@ import { computed, onMounted, ref } from 'vue';
import { entities } from 'misskey-js';
import XItem from './system-webhook.item.vue';
import FormSection from '@/components/form/section.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import XHeader from '@/pages/admin/_header_.vue';
import MkButton from '@/components/MkButton.vue';
@@ -82,7 +82,7 @@ onMounted(async () => {
await fetchWebhooks();
});
-definePageMetadata(() => ({
+definePage(() => ({
title: 'SystemWebhook',
icon: 'ti ti-webhook',
}));
diff --git a/packages/frontend/src/pages/admin/users.vue b/packages/frontend/src/pages/admin/users.vue
index 3f722e2dc8..1998144c05 100644
--- a/packages/frontend/src/pages/admin/users.vue
+++ b/packages/frontend/src/pages/admin/users.vue
@@ -70,7 +70,7 @@ import MkPagination from '@/components/MkPagination.vue';
import * as os from '@/os.js';
import { lookupUser } from '@/utility/admin-lookup.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
import { dateString } from '@/filters/date.js';
@@ -169,7 +169,7 @@ watchEffect(() => {
}));
});
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.users,
icon: 'ti ti-users',
}));
diff --git a/packages/frontend/src/pages/ads.vue b/packages/frontend/src/pages/ads.vue
index 81aee08f70..bf60aa5c3f 100644
--- a/packages/frontend/src/pages/ads.vue
+++ b/packages/frontend/src/pages/ads.vue
@@ -16,11 +16,11 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<script lang="ts" setup>
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.ads,
icon: 'ti ti-ad',
}));
diff --git a/packages/frontend/src/pages/announcement.vue b/packages/frontend/src/pages/announcement.vue
index c47074165d..977bbe0b47 100644
--- a/packages/frontend/src/pages/announcement.vue
+++ b/packages/frontend/src/pages/announcement.vue
@@ -54,7 +54,7 @@ import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { $i, updateAccountPartial } from '@/account.js';
import { prefer } from '@/preferences.js';
@@ -102,7 +102,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: announcement.value ? announcement.value.title : i18n.ts.announcements,
icon: 'ti ti-speakerphone',
}));
diff --git a/packages/frontend/src/pages/announcements.vue b/packages/frontend/src/pages/announcements.vue
index 28d9866a69..13f28d9b35 100644
--- a/packages/frontend/src/pages/announcements.vue
+++ b/packages/frontend/src/pages/announcements.vue
@@ -55,7 +55,7 @@ import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { $i, updateAccountPartial } from '@/account.js';
const paginationCurrent = {
@@ -111,7 +111,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-point',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.announcements,
icon: 'ti ti-speakerphone',
}));
diff --git a/packages/frontend/src/pages/antenna-timeline.vue b/packages/frontend/src/pages/antenna-timeline.vue
index b1fa874f65..542fa72126 100644
--- a/packages/frontend/src/pages/antenna-timeline.vue
+++ b/packages/frontend/src/pages/antenna-timeline.vue
@@ -30,7 +30,7 @@ import MkTimeline from '@/components/MkTimeline.vue';
import { scroll } from '@@/js/scroll.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { useRouter } from '@/router/supplier.js';
@@ -88,7 +88,7 @@ const headerActions = computed(() => antenna.value ? [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: antenna.value ? antenna.value.name : i18n.ts.antennas,
icon: 'ti ti-antenna',
}));
diff --git a/packages/frontend/src/pages/api-console.vue b/packages/frontend/src/pages/api-console.vue
index b6942d0b9a..22b3eda61a 100644
--- a/packages/frontend/src/pages/api-console.vue
+++ b/packages/frontend/src/pages/api-console.vue
@@ -42,7 +42,7 @@ import MkInput from '@/components/MkInput.vue';
import MkTextarea from '@/components/MkTextarea.vue';
import MkSwitch from '@/components/MkSwitch.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const body = ref('{}');
const endpoint = ref('');
@@ -87,7 +87,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: 'API console',
icon: 'ti ti-terminal-2',
}));
diff --git a/packages/frontend/src/pages/auth.vue b/packages/frontend/src/pages/auth.vue
index ef6be9b9ee..8b0fde4a25 100644
--- a/packages/frontend/src/pages/auth.vue
+++ b/packages/frontend/src/pages/auth.vue
@@ -48,7 +48,7 @@ import XForm from './auth.form.vue';
import MkSignin from '@/components/MkSignin.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
import { $i, login } from '@/account.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
const props = defineProps<{
@@ -97,7 +97,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts._auth.shareAccessTitle,
icon: 'ti ti-apps',
}));
diff --git a/packages/frontend/src/pages/avatar-decorations.vue b/packages/frontend/src/pages/avatar-decorations.vue
index 2858be9fd7..eb1015b19e 100644
--- a/packages/frontend/src/pages/avatar-decorations.vue
+++ b/packages/frontend/src/pages/avatar-decorations.vue
@@ -32,7 +32,7 @@ import { signinRequired } from '@/account.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const $i = signinRequired();
@@ -86,7 +86,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.avatarDecorations,
icon: 'ti ti-sparkles',
}));
diff --git a/packages/frontend/src/pages/channel-editor.vue b/packages/frontend/src/pages/channel-editor.vue
index b695008088..80cefe12c3 100644
--- a/packages/frontend/src/pages/channel-editor.vue
+++ b/packages/frontend/src/pages/channel-editor.vue
@@ -77,7 +77,7 @@ import MkColorInput from '@/components/MkColorInput.vue';
import { selectFile } from '@/utility/select-file.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import MkFolder from '@/components/MkFolder.vue';
import MkSwitch from '@/components/MkSwitch.vue';
@@ -202,7 +202,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: props.channelId ? i18n.ts._channel.edit : i18n.ts._channel.create,
icon: 'ti ti-device-tv',
}));
diff --git a/packages/frontend/src/pages/channel.vue b/packages/frontend/src/pages/channel.vue
index 4a841329e0..a774aa6e44 100644
--- a/packages/frontend/src/pages/channel.vue
+++ b/packages/frontend/src/pages/channel.vue
@@ -84,7 +84,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { $i, iAmModerator } from '@/account.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { deviceKind } from '@/utility/device-kind.js';
import MkNotes from '@/components/MkNotes.vue';
import { favoritedChannelsCache } from '@/cache.js';
@@ -265,7 +265,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-search',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: channel.value ? channel.value.name : i18n.ts.channel,
icon: 'ti ti-device-tv',
}));
diff --git a/packages/frontend/src/pages/channels.vue b/packages/frontend/src/pages/channels.vue
index d21d2a9c53..071f5a048b 100644
--- a/packages/frontend/src/pages/channels.vue
+++ b/packages/frontend/src/pages/channels.vue
@@ -69,7 +69,7 @@ import MkRadios from '@/components/MkRadios.vue';
import MkButton from '@/components/MkButton.vue';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { useRouter } from '@/router/supplier.js';
@@ -161,7 +161,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-edit',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.channel,
icon: 'ti ti-device-tv',
}));
diff --git a/packages/frontend/src/pages/clicker.vue b/packages/frontend/src/pages/clicker.vue
index b0adb98354..fcc1d1d5db 100644
--- a/packages/frontend/src/pages/clicker.vue
+++ b/packages/frontend/src/pages/clicker.vue
@@ -14,9 +14,9 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import MkClickerGame from '@/components/MkClickerGame.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
-definePageMetadata(() => ({
+definePage(() => ({
title: '🍪👈',
icon: 'ti ti-cookie',
}));
diff --git a/packages/frontend/src/pages/clip.vue b/packages/frontend/src/pages/clip.vue
index 5a89151775..9765ebf216 100644
--- a/packages/frontend/src/pages/clip.vue
+++ b/packages/frontend/src/pages/clip.vue
@@ -40,7 +40,7 @@ import { $i } from '@/account.js';
import { i18n } from '@/i18n.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import { clipsCache } from '@/cache.js';
import { isSupportShare } from '@/utility/navigator.js';
@@ -193,7 +193,7 @@ const headerActions = computed(() => clip.value && isOwned.value ? [{
},
}] : null);
-definePageMetadata(() => ({
+definePage(() => ({
title: clip.value ? clip.value.name : i18n.ts.clip,
icon: 'ti ti-paperclip',
}));
diff --git a/packages/frontend/src/pages/contact.vue b/packages/frontend/src/pages/contact.vue
index 46bf551da5..d99c392759 100644
--- a/packages/frontend/src/pages/contact.vue
+++ b/packages/frontend/src/pages/contact.vue
@@ -37,11 +37,11 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkKeyValue from '@/components/MkKeyValue.vue';
import MkLink from '@/components/MkLink.vue';
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.inquiry,
icon: 'ti ti-help-circle',
}));
diff --git a/packages/frontend/src/pages/custom-emojis-manager.vue b/packages/frontend/src/pages/custom-emojis-manager.vue
index 450e7ef74b..35a46e4dd9 100644
--- a/packages/frontend/src/pages/custom-emojis-manager.vue
+++ b/packages/frontend/src/pages/custom-emojis-manager.vue
@@ -86,7 +86,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { getProxiedImageUrl } from '@/utility/media-proxy.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const emojisPaginationComponent = shallowRef<InstanceType<typeof MkPagination>>();
@@ -326,7 +326,7 @@ const headerTabs = computed(() => [{
title: i18n.ts.remote,
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.customEmojis,
icon: 'ti ti-icons',
}));
diff --git a/packages/frontend/src/pages/drive.file.vue b/packages/frontend/src/pages/drive.file.vue
index 1a9f13daf4..ecc1117da9 100644
--- a/packages/frontend/src/pages/drive.file.vue
+++ b/packages/frontend/src/pages/drive.file.vue
@@ -24,7 +24,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, ref, defineAsyncComponent } from 'vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
const props = defineProps<{
@@ -48,7 +48,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-pencil',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts._fileViewer.title,
icon: 'ti ti-file',
}));
diff --git a/packages/frontend/src/pages/drive.vue b/packages/frontend/src/pages/drive.vue
index 466fedb479..c5813a4523 100644
--- a/packages/frontend/src/pages/drive.vue
+++ b/packages/frontend/src/pages/drive.vue
@@ -14,7 +14,7 @@ import { computed, ref } from 'vue';
import * as Misskey from 'misskey-js';
import XDrive from '@/components/MkDrive.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const folder = ref<Misskey.entities.DriveFolder | null>(null);
@@ -22,7 +22,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: folder.value ? folder.value.name : i18n.ts.drive,
icon: 'ti ti-cloud',
hideHeader: true,
diff --git a/packages/frontend/src/pages/drop-and-fusion.game.vue b/packages/frontend/src/pages/drop-and-fusion.game.vue
index d34702fd07..f760aca8ae 100644
--- a/packages/frontend/src/pages/drop-and-fusion.game.vue
+++ b/packages/frontend/src/pages/drop-and-fusion.game.vue
@@ -198,7 +198,7 @@ import { DropAndFusionGame } from 'misskey-bubble-game';
import { useInterval } from '@@/js/use-interval.js';
import { apiUrl } from '@@/js/config.js';
import type { Mono } from 'misskey-bubble-game';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkRippleEffect from '@/components/MkRippleEffect.vue';
import * as os from '@/os.js';
import MkNumber from '@/components/MkNumber.vue';
@@ -1229,7 +1229,7 @@ onDeactivated(() => {
bgmNodes?.soundSource.stop();
});
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.bubbleGame,
icon: 'ti ti-apple',
}));
diff --git a/packages/frontend/src/pages/drop-and-fusion.vue b/packages/frontend/src/pages/drop-and-fusion.vue
index 47b04229fc..7f571a7c36 100644
--- a/packages/frontend/src/pages/drop-and-fusion.vue
+++ b/packages/frontend/src/pages/drop-and-fusion.vue
@@ -88,7 +88,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, ref, watch } from 'vue';
import XGame from './drop-and-fusion.game.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import { i18n } from '@/i18n.js';
import MkSelect from '@/components/MkSelect.vue';
@@ -121,7 +121,7 @@ function onGameEnd() {
gameStarted.value = false;
}
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.bubbleGame,
icon: 'ti ti-device-gamepad',
}));
diff --git a/packages/frontend/src/pages/explore.vue b/packages/frontend/src/pages/explore.vue
index 878c7be4d9..d24ebe6aae 100644
--- a/packages/frontend/src/pages/explore.vue
+++ b/packages/frontend/src/pages/explore.vue
@@ -27,7 +27,7 @@ import XUsers from './explore.users.vue';
import XRoles from './explore.roles.vue';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
const props = withDefaults(defineProps<{
@@ -60,7 +60,7 @@ const headerTabs = computed(() => [{
title: i18n.ts.roles,
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.explore,
icon: 'ti ti-hash',
}));
diff --git a/packages/frontend/src/pages/favorites.vue b/packages/frontend/src/pages/favorites.vue
index aec45d0045..548ed828f1 100644
--- a/packages/frontend/src/pages/favorites.vue
+++ b/packages/frontend/src/pages/favorites.vue
@@ -30,7 +30,7 @@ import MkPagination from '@/components/MkPagination.vue';
import MkNote from '@/components/MkNote.vue';
import MkDateSeparatedList from '@/components/MkDateSeparatedList.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { infoImageUrl } from '@/instance.js';
const pagination = {
@@ -38,7 +38,7 @@ const pagination = {
limit: 10,
};
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.favorites,
icon: 'ti ti-star',
}));
diff --git a/packages/frontend/src/pages/flash/flash-edit.vue b/packages/frontend/src/pages/flash/flash-edit.vue
index d01acc3787..b04974b7dc 100644
--- a/packages/frontend/src/pages/flash/flash-edit.vue
+++ b/packages/frontend/src/pages/flash/flash-edit.vue
@@ -48,7 +48,7 @@ import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkTextarea from '@/components/MkTextarea.vue';
import MkCodeEditor from '@/components/MkCodeEditor.vue';
import MkInput from '@/components/MkInput.vue';
@@ -461,7 +461,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: flash.value ? `${i18n.ts._play.edit}: ${flash.value.title}` : i18n.ts._play.new,
}));
</script>
diff --git a/packages/frontend/src/pages/flash/flash-index.vue b/packages/frontend/src/pages/flash/flash-index.vue
index 688b5c2ac6..3cd7c46c1e 100644
--- a/packages/frontend/src/pages/flash/flash-index.vue
+++ b/packages/frontend/src/pages/flash/flash-index.vue
@@ -46,7 +46,7 @@ import MkPagination from '@/components/MkPagination.vue';
import MkButton from '@/components/MkButton.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useRouter } from '@/router/supplier.js';
const router = useRouter();
@@ -91,7 +91,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-heart',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Play',
icon: 'ti ti-player-play',
}));
diff --git a/packages/frontend/src/pages/flash/flash.vue b/packages/frontend/src/pages/flash/flash.vue
index e2e7cc6f74..6bce6689d4 100644
--- a/packages/frontend/src/pages/flash/flash.vue
+++ b/packages/frontend/src/pages/flash/flash.vue
@@ -73,7 +73,7 @@ import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkAsUi from '@/components/MkAsUi.vue';
import { registerAsUiLib } from '@/aiscript/ui.js';
import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js';
@@ -304,7 +304,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: flash.value ? flash.value.title : 'Play',
...flash.value ? {
avatar: flash.value.user,
diff --git a/packages/frontend/src/pages/follow-requests.vue b/packages/frontend/src/pages/follow-requests.vue
index 43532026fc..bd48b882d2 100644
--- a/packages/frontend/src/pages/follow-requests.vue
+++ b/packages/frontend/src/pages/follow-requests.vue
@@ -52,7 +52,7 @@ import MkButton from '@/components/MkButton.vue';
import { userPage, acct } from '@/filters/user.js';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { infoImageUrl } from '@/instance.js';
import { $i } from '@/account.js';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
@@ -105,7 +105,7 @@ const headerTabs = computed(() => [
const tab = ref($i?.isLocked ? 'list' : 'sent');
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.followRequests,
icon: 'ti ti-user-plus',
}));
diff --git a/packages/frontend/src/pages/gallery/edit.vue b/packages/frontend/src/pages/gallery/edit.vue
index 974dd18224..9cd59d0aa5 100644
--- a/packages/frontend/src/pages/gallery/edit.vue
+++ b/packages/frontend/src/pages/gallery/edit.vue
@@ -48,7 +48,7 @@ import FormSuspense from '@/components/form/suspense.vue';
import { selectFiles } from '@/utility/select-file.js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { useRouter } from '@/router/supplier.js';
@@ -122,7 +122,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: props.postId ? i18n.ts.edit : i18n.ts.postToGallery,
icon: 'ti ti-pencil',
}));
diff --git a/packages/frontend/src/pages/gallery/index.vue b/packages/frontend/src/pages/gallery/index.vue
index 49b7e349e8..14b3f7bf3c 100644
--- a/packages/frontend/src/pages/gallery/index.vue
+++ b/packages/frontend/src/pages/gallery/index.vue
@@ -52,7 +52,7 @@ import MkFoldableSection from '@/components/MkFoldableSection.vue';
import MkPagination from '@/components/MkPagination.vue';
import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { useRouter } from '@/router/supplier.js';
@@ -119,7 +119,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-edit',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.gallery,
icon: 'ti ti-icons',
}));
diff --git a/packages/frontend/src/pages/gallery/post.vue b/packages/frontend/src/pages/gallery/post.vue
index 81c63b0f4e..56ddb820cf 100644
--- a/packages/frontend/src/pages/gallery/post.vue
+++ b/packages/frontend/src/pages/gallery/post.vue
@@ -75,7 +75,7 @@ import MkPagination from '@/components/MkPagination.vue';
import MkGalleryPostPreview from '@/components/MkGalleryPostPreview.vue';
import MkFollowButton from '@/components/MkFollowButton.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { prefer } from '@/preferences.js';
import { $i } from '@/account.js';
import { isSupportShare } from '@/utility/navigator.js';
@@ -208,7 +208,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: post.value ? post.value.title : i18n.ts.gallery,
...post.value ? {
avatar: post.value.user,
diff --git a/packages/frontend/src/pages/games.vue b/packages/frontend/src/pages/games.vue
index f6eb8a5d7e..48adead383 100644
--- a/packages/frontend/src/pages/games.vue
+++ b/packages/frontend/src/pages/games.vue
@@ -25,9 +25,9 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Misskey Games',
icon: 'ti ti-device-gamepad',
}));
diff --git a/packages/frontend/src/pages/install-extensions.vue b/packages/frontend/src/pages/install-extensions.vue
index 0d59c90527..2bd923e6d9 100644
--- a/packages/frontend/src/pages/install-extensions.vue
+++ b/packages/frontend/src/pages/install-extensions.vue
@@ -59,7 +59,7 @@ import { parsePluginMeta, installPlugin } from '@/plugin.js';
import { parseThemeCode, installTheme } from '@/theme.js';
import { unisonReload } from '@/utility/unison-reload.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const uiPhase = ref<'fetching' | 'confirm' | 'error'>('fetching');
const errorKV = ref<{
@@ -244,7 +244,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts._externalResourceInstaller.title,
icon: 'ti ti-download',
}));
diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue
index 78ecd180cc..eddeb4aba9 100644
--- a/packages/frontend/src/pages/instance-info.vue
+++ b/packages/frontend/src/pages/instance-info.vue
@@ -149,7 +149,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import number from '@/filters/number.js';
import { iAmModerator, iAmAdmin } from '@/account.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
import MkPagination from '@/components/MkPagination.vue';
@@ -299,7 +299,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-code',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: props.host,
icon: 'ti ti-server',
}));
diff --git a/packages/frontend/src/pages/invite.vue b/packages/frontend/src/pages/invite.vue
index fbe54e9951..8369927d85 100644
--- a/packages/frontend/src/pages/invite.vue
+++ b/packages/frontend/src/pages/invite.vue
@@ -43,7 +43,7 @@ import MkButton from '@/components/MkButton.vue';
import MkPagination from '@/components/MkPagination.vue';
import type { Paging } from '@/components/MkPagination.vue';
import MkInviteCode from '@/components/MkInviteCode.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { serverErrorImageUrl, instance } from '@/instance.js';
import { $i } from '@/account.js';
@@ -92,7 +92,7 @@ async function update() {
update();
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.invite,
icon: 'ti ti-user-plus',
}));
diff --git a/packages/frontend/src/pages/list.vue b/packages/frontend/src/pages/list.vue
index f1b3f7a22f..524db0da0b 100644
--- a/packages/frontend/src/pages/list.vue
+++ b/packages/frontend/src/pages/list.vue
@@ -42,7 +42,7 @@ import { userPage } from '@/filters/user.js';
import { i18n } from '@/i18n.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
import MkButton from '@/components/MkButton.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { serverErrorImageUrl } from '@/instance.js';
const props = defineProps<{
@@ -101,7 +101,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: list.value ? list.value.name : i18n.ts.lists,
icon: 'ti ti-list',
}));
diff --git a/packages/frontend/src/pages/lookup.vue b/packages/frontend/src/pages/lookup.vue
index ff072ba527..e92ee0a4cc 100644
--- a/packages/frontend/src/pages/lookup.vue
+++ b/packages/frontend/src/pages/lookup.vue
@@ -24,7 +24,7 @@ import * as Misskey from 'misskey-js';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { mainRouter } from '@/router/main.js';
import MkButton from '@/components/MkButton.vue';
@@ -90,7 +90,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata({
+definePage({
title: i18n.ts.lookup,
icon: 'ti ti-world-search',
});
diff --git a/packages/frontend/src/pages/miauth.vue b/packages/frontend/src/pages/miauth.vue
index 3060c97a49..79437f3f17 100644
--- a/packages/frontend/src/pages/miauth.vue
+++ b/packages/frontend/src/pages/miauth.vue
@@ -37,7 +37,7 @@ import MkAuthConfirm from '@/components/MkAuthConfirm.vue';
import { i18n } from '@/i18n.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const props = defineProps<{
session: string;
@@ -77,7 +77,7 @@ function onDeny() {
authRoot.value?.showUI('denied');
}
-definePageMetadata(() => ({
+definePage(() => ({
title: 'MiAuth',
icon: 'ti ti-apps',
}));
diff --git a/packages/frontend/src/pages/my-antennas/create.vue b/packages/frontend/src/pages/my-antennas/create.vue
index 2f87de76fe..42d8b7be4c 100644
--- a/packages/frontend/src/pages/my-antennas/create.vue
+++ b/packages/frontend/src/pages/my-antennas/create.vue
@@ -14,7 +14,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed } from 'vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { antennasCache } from '@/cache.js';
import { useRouter } from '@/router/supplier.js';
import MkAntennaEditor from '@/components/MkAntennaEditor.vue';
@@ -29,7 +29,7 @@ function onAntennaCreated() {
const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.createAntenna,
icon: 'ti ti-antenna',
}));
diff --git a/packages/frontend/src/pages/my-antennas/edit.vue b/packages/frontend/src/pages/my-antennas/edit.vue
index ed9afd49ae..acd368b5e2 100644
--- a/packages/frontend/src/pages/my-antennas/edit.vue
+++ b/packages/frontend/src/pages/my-antennas/edit.vue
@@ -17,7 +17,7 @@ import * as Misskey from 'misskey-js';
import MkAntennaEditor from '@/components/MkAntennaEditor.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { antennasCache } from '@/cache.js';
import { useRouter } from '@/router/supplier.js';
@@ -41,7 +41,7 @@ misskeyApi('antennas/show', { antennaId: props.antennaId }).then((antennaRespons
const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.editAntenna,
icon: 'ti ti-antenna',
}));
diff --git a/packages/frontend/src/pages/my-antennas/index.vue b/packages/frontend/src/pages/my-antennas/index.vue
index 0e9a709a99..03f4940e09 100644
--- a/packages/frontend/src/pages/my-antennas/index.vue
+++ b/packages/frontend/src/pages/my-antennas/index.vue
@@ -31,7 +31,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { onActivated, computed } from 'vue';
import MkButton from '@/components/MkButton.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { antennasCache } from '@/cache.js';
import { infoImageUrl } from '@/instance.js';
@@ -55,7 +55,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.manageAntennas,
icon: 'ti ti-antenna',
}));
diff --git a/packages/frontend/src/pages/my-clips/index.vue b/packages/frontend/src/pages/my-clips/index.vue
index 2fba8d3bc9..247720d9ac 100644
--- a/packages/frontend/src/pages/my-clips/index.vue
+++ b/packages/frontend/src/pages/my-clips/index.vue
@@ -32,7 +32,7 @@ import MkClipPreview from '@/components/MkClipPreview.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { clipsCache } from '@/cache.js';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
@@ -100,7 +100,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-heart',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.clip,
icon: 'ti ti-paperclip',
}));
diff --git a/packages/frontend/src/pages/my-lists/index.vue b/packages/frontend/src/pages/my-lists/index.vue
index 5449aded15..0bc9b3f3c2 100644
--- a/packages/frontend/src/pages/my-lists/index.vue
+++ b/packages/frontend/src/pages/my-lists/index.vue
@@ -34,7 +34,7 @@ import MkButton from '@/components/MkButton.vue';
import MkAvatars from '@/components/MkAvatars.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { userListsCache } from '@/cache.js';
import { infoImageUrl } from '@/instance.js';
import { signinRequired } from '@/account.js';
@@ -71,7 +71,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.manageLists,
icon: 'ti ti-list',
}));
diff --git a/packages/frontend/src/pages/my-lists/list.vue b/packages/frontend/src/pages/my-lists/list.vue
index 5160124994..fdee890cfd 100644
--- a/packages/frontend/src/pages/my-lists/list.vue
+++ b/packages/frontend/src/pages/my-lists/list.vue
@@ -58,7 +58,7 @@ import * as Misskey from 'misskey-js';
import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { userPage } from '@/filters/user.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
@@ -191,7 +191,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: list.value ? list.value.name : i18n.ts.lists,
icon: 'ti ti-list',
}));
diff --git a/packages/frontend/src/pages/not-found.vue b/packages/frontend/src/pages/not-found.vue
index 4605d67b49..3bba1159e9 100644
--- a/packages/frontend/src/pages/not-found.vue
+++ b/packages/frontend/src/pages/not-found.vue
@@ -15,7 +15,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed } from 'vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { pleaseLogin } from '@/utility/please-login.js';
import { notFoundImageUrl } from '@/instance.js';
@@ -31,7 +31,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.notFound,
icon: 'ti ti-alert-triangle',
}));
diff --git a/packages/frontend/src/pages/note.vue b/packages/frontend/src/pages/note.vue
index 2292072817..6f53cba806 100644
--- a/packages/frontend/src/pages/note.vue
+++ b/packages/frontend/src/pages/note.vue
@@ -57,7 +57,7 @@ import MkNotes from '@/components/MkNotes.vue';
import MkRemoteCaution from '@/components/MkRemoteCaution.vue';
import MkButton from '@/components/MkButton.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { dateString } from '@/filters/date.js';
import MkClipPreview from '@/components/MkClipPreview.vue';
@@ -165,7 +165,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.note,
...note.value ? {
subtitle: dateString(note.value.createdAt),
diff --git a/packages/frontend/src/pages/notifications.vue b/packages/frontend/src/pages/notifications.vue
index 9887c39e6b..6c276d3fb3 100644
--- a/packages/frontend/src/pages/notifications.vue
+++ b/packages/frontend/src/pages/notifications.vue
@@ -29,7 +29,7 @@ import MkNotes from '@/components/MkNotes.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { notificationTypes } from '@@/js/const.js';
const tab = ref('all');
@@ -94,7 +94,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-mail',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.notifications,
icon: 'ti ti-bell',
}));
diff --git a/packages/frontend/src/pages/oauth.vue b/packages/frontend/src/pages/oauth.vue
index 1346c696b9..e8b88b4bc9 100644
--- a/packages/frontend/src/pages/oauth.vue
+++ b/packages/frontend/src/pages/oauth.vue
@@ -25,7 +25,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import * as Misskey from 'misskey-js';
import MkAnimBg from '@/components/MkAnimBg.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkAuthConfirm from '@/components/MkAuthConfirm.vue';
const transactionIdMeta = document.querySelector<HTMLMetaElement>('meta[name="misskey:oauth:transaction-id"]');
@@ -75,7 +75,7 @@ function onDeny(token: string) {
doPost(token, 'deny');
}
-definePageMetadata(() => ({
+definePage(() => ({
title: 'OAuth',
icon: 'ti ti-apps',
}));
diff --git a/packages/frontend/src/pages/page-editor/page-editor.vue b/packages/frontend/src/pages/page-editor/page-editor.vue
index 5750b77d20..ed701ed3c0 100644
--- a/packages/frontend/src/pages/page-editor/page-editor.vue
+++ b/packages/frontend/src/pages/page-editor/page-editor.vue
@@ -74,7 +74,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { selectFile } from '@/utility/select-file.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { $i } from '@/account.js';
import { mainRouter } from '@/router/main.js';
import { getPageBlockList } from '@/pages/page-editor/common.js';
@@ -264,7 +264,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-note',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: props.initPageId ? i18n.ts._pages.editPage
: props.initPageName && props.initUser ? i18n.ts._pages.readPage
: i18n.ts._pages.newPage,
diff --git a/packages/frontend/src/pages/page.vue b/packages/frontend/src/pages/page.vue
index 0405a722ab..1c288442b5 100644
--- a/packages/frontend/src/pages/page.vue
+++ b/packages/frontend/src/pages/page.vue
@@ -113,7 +113,7 @@ import MkContainer from '@/components/MkContainer.vue';
import MkPagination from '@/components/MkPagination.vue';
import MkPagePreview from '@/components/MkPagePreview.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { deepClone } from '@/utility/clone.js';
import { $i } from '@/account.js';
import { isSupportShare } from '@/utility/navigator.js';
@@ -320,7 +320,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: page.value ? page.value.title || page.value.name : i18n.ts.pages,
...page.value ? {
avatar: page.value.user,
diff --git a/packages/frontend/src/pages/pages.vue b/packages/frontend/src/pages/pages.vue
index 83b922e5b5..f9bb825bd0 100644
--- a/packages/frontend/src/pages/pages.vue
+++ b/packages/frontend/src/pages/pages.vue
@@ -44,7 +44,7 @@ import MkPagination from '@/components/MkPagination.vue';
import MkButton from '@/components/MkButton.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useRouter } from '@/router/supplier.js';
const router = useRouter();
@@ -88,7 +88,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-heart',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.pages,
icon: 'ti ti-note',
}));
diff --git a/packages/frontend/src/pages/preview.vue b/packages/frontend/src/pages/preview.vue
index 52b41f3153..78167500f4 100644
--- a/packages/frontend/src/pages/preview.vue
+++ b/packages/frontend/src/pages/preview.vue
@@ -13,13 +13,13 @@ SPDX-License-Identifier: AGPL-3.0-only
import { computed } from 'vue';
import MkSample from '@/components/MkPreview.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(computed(() => ({
+definePage(computed(() => ({
title: i18n.ts.preview,
icon: 'ti ti-eye',
})));
diff --git a/packages/frontend/src/pages/registry.keys.vue b/packages/frontend/src/pages/registry.keys.vue
index 3bde026763..b2d0f1175d 100644
--- a/packages/frontend/src/pages/registry.keys.vue
+++ b/packages/frontend/src/pages/registry.keys.vue
@@ -38,7 +38,7 @@ import JSON5 from 'json5';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import FormLink from '@/components/form/link.vue';
import FormSection from '@/components/form/section.vue';
import MkButton from '@/components/MkButton.vue';
@@ -96,7 +96,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.registry,
icon: 'ti ti-adjustments',
}));
diff --git a/packages/frontend/src/pages/registry.value.vue b/packages/frontend/src/pages/registry.value.vue
index 393e44beb3..fd0efa0d8e 100644
--- a/packages/frontend/src/pages/registry.value.vue
+++ b/packages/frontend/src/pages/registry.value.vue
@@ -50,7 +50,7 @@ import JSON5 from 'json5';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkButton from '@/components/MkButton.vue';
import MkKeyValue from '@/components/MkKeyValue.vue';
import MkCodeEditor from '@/components/MkCodeEditor.vue';
@@ -123,7 +123,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.registry,
icon: 'ti ti-adjustments',
}));
diff --git a/packages/frontend/src/pages/registry.vue b/packages/frontend/src/pages/registry.vue
index b251365100..0ae2efb24d 100644
--- a/packages/frontend/src/pages/registry.vue
+++ b/packages/frontend/src/pages/registry.vue
@@ -28,7 +28,7 @@ import JSON5 from 'json5';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import FormLink from '@/components/form/link.vue';
import FormSection from '@/components/form/section.vue';
import MkButton from '@/components/MkButton.vue';
@@ -73,7 +73,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.registry,
icon: 'ti ti-adjustments',
}));
diff --git a/packages/frontend/src/pages/reset-password.vue b/packages/frontend/src/pages/reset-password.vue
index 12226da272..d84c8f33dd 100644
--- a/packages/frontend/src/pages/reset-password.vue
+++ b/packages/frontend/src/pages/reset-password.vue
@@ -25,7 +25,7 @@ import MkInput from '@/components/MkInput.vue';
import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { mainRouter } from '@/router/main.js';
const props = defineProps<{
@@ -55,7 +55,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.resetPassword,
icon: 'ti ti-lock',
}));
diff --git a/packages/frontend/src/pages/reversi/game.vue b/packages/frontend/src/pages/reversi/game.vue
index 934aa69c6a..053ec2aa08 100644
--- a/packages/frontend/src/pages/reversi/game.vue
+++ b/packages/frontend/src/pages/reversi/game.vue
@@ -15,7 +15,7 @@ import * as Misskey from 'misskey-js';
import GameSetting from './game.setting.vue';
import GameBoard from './game.board.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useStream } from '@/stream.js';
import { signinRequired } from '@/account.js';
import { useRouter } from '@/router/supplier.js';
@@ -114,7 +114,7 @@ onUnmounted(() => {
}
});
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Reversi',
icon: 'ti ti-device-gamepad',
}));
diff --git a/packages/frontend/src/pages/reversi/index.vue b/packages/frontend/src/pages/reversi/index.vue
index 4000ce13c7..ff2e7e922f 100644
--- a/packages/frontend/src/pages/reversi/index.vue
+++ b/packages/frontend/src/pages/reversi/index.vue
@@ -108,7 +108,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { onDeactivated, onMounted, onUnmounted, ref } from 'vue';
import * as Misskey from 'misskey-js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useStream } from '@/stream.js';
import MkButton from '@/components/MkButton.vue';
import MkFolder from '@/components/MkFolder.vue';
@@ -261,7 +261,7 @@ onUnmounted(() => {
cancelMatching();
});
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Reversi',
icon: 'ti ti-device-gamepad',
}));
diff --git a/packages/frontend/src/pages/role.vue b/packages/frontend/src/pages/role.vue
index 19d26a7316..187b675346 100644
--- a/packages/frontend/src/pages/role.vue
+++ b/packages/frontend/src/pages/role.vue
@@ -40,7 +40,7 @@ import { computed, watch, ref } from 'vue';
import * as Misskey from 'misskey-js';
import { misskeyApi } from '@/utility/misskey-api.js';
import MkUserList from '@/components/MkUserList.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import MkTimeline from '@/components/MkTimeline.vue';
import { instanceName } from '@@/js/config.js';
@@ -93,7 +93,7 @@ const headerTabs = computed(() => [{
title: i18n.ts.timeline,
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: role.value ? role.value.name : (error.value ?? i18n.ts.role),
icon: 'ti ti-badge',
}));
diff --git a/packages/frontend/src/pages/scratchpad.vue b/packages/frontend/src/pages/scratchpad.vue
index 357e6621ac..ed5cd23b23 100644
--- a/packages/frontend/src/pages/scratchpad.vue
+++ b/packages/frontend/src/pages/scratchpad.vue
@@ -68,7 +68,7 @@ import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js';
import * as os from '@/os.js';
import { $i } from '@/account.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { registerAsUiLib } from '@/aiscript/ui.js';
import type { AsUiComponent } from '@/aiscript/ui.js';
import MkAsUi from '@/components/MkAsUi.vue';
@@ -202,7 +202,7 @@ const showns = computed(() => {
return result;
});
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.scratchpad,
icon: 'ti ti-terminal-2',
}));
diff --git a/packages/frontend/src/pages/search.vue b/packages/frontend/src/pages/search.vue
index e3d1d427a8..d4601df752 100644
--- a/packages/frontend/src/pages/search.vue
+++ b/packages/frontend/src/pages/search.vue
@@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, defineAsyncComponent, ref, toRef } from 'vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { notesSearchAvailable } from '@/utility/check-permissions.js';
import MkInfo from '@/components/MkInfo.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
@@ -68,7 +68,7 @@ const headerTabs = computed(() => [{
icon: 'ti ti-users',
}]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.search,
icon: 'ti ti-search',
}));
diff --git a/packages/frontend/src/pages/settings/accessibility.vue b/packages/frontend/src/pages/settings/accessibility.vue
index c79fb40ae1..f22e45ce1f 100644
--- a/packages/frontend/src/pages/settings/accessibility.vue
+++ b/packages/frontend/src/pages/settings/accessibility.vue
@@ -77,7 +77,7 @@ import MkSelect from '@/components/MkSelect.vue';
import { prefer } from '@/preferences.js';
import { reloadAsk } from '@/utility/reload-ask.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue';
const reduceAnimation = prefer.model('animation', v => !v, v => !v);
@@ -99,7 +99,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.accessibility,
icon: 'ti ti-accessible',
}));
diff --git a/packages/frontend/src/pages/settings/accounts.vue b/packages/frontend/src/pages/settings/accounts.vue
index d4a1ffd708..2cf65be2d0 100644
--- a/packages/frontend/src/pages/settings/accounts.vue
+++ b/packages/frontend/src/pages/settings/accounts.vue
@@ -36,7 +36,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { getAccounts, removeAccount as _removeAccount, login, $i, getAccountWithSigninDialog, getAccountWithSignupDialog } from '@/account.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
import type { MenuItem } from '@/types/menu.js';
@@ -128,7 +128,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.accounts,
icon: 'ti ti-users',
}));
diff --git a/packages/frontend/src/pages/settings/api.vue b/packages/frontend/src/pages/settings/api.vue
index b8bb2bb32a..e41a7de0de 100644
--- a/packages/frontend/src/pages/settings/api.vue
+++ b/packages/frontend/src/pages/settings/api.vue
@@ -18,7 +18,7 @@ import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const isDesktop = ref(window.innerWidth >= 1100);
@@ -46,7 +46,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: 'API',
icon: 'ti ti-api',
}));
diff --git a/packages/frontend/src/pages/settings/appearance.vue b/packages/frontend/src/pages/settings/appearance.vue
index 2ecbf535ba..6f8eb34d37 100644
--- a/packages/frontend/src/pages/settings/appearance.vue
+++ b/packages/frontend/src/pages/settings/appearance.vue
@@ -218,7 +218,7 @@ import MkRadios from '@/components/MkRadios.vue';
import { prefer } from '@/preferences.js';
import { reloadAsk } from '@/utility/reload-ask.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { miLocalStorage } from '@/local-storage.js';
import FormLink from '@/components/form/link.vue';
import { globalEvents } from '@/events.js';
@@ -313,7 +313,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.appearance,
icon: 'ti ti-device-desktop',
}));
diff --git a/packages/frontend/src/pages/settings/apps.vue b/packages/frontend/src/pages/settings/apps.vue
index 1962623c3e..626e14b427 100644
--- a/packages/frontend/src/pages/settings/apps.vue
+++ b/packages/frontend/src/pages/settings/apps.vue
@@ -59,7 +59,7 @@ import * as Misskey from 'misskey-js';
import FormPagination from '@/components/MkPagination.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkKeyValue from '@/components/MkKeyValue.vue';
import MkButton from '@/components/MkButton.vue';
import MkFolder from '@/components/MkFolder.vue';
@@ -86,7 +86,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.installedApps,
icon: 'ti ti-plug',
}));
diff --git a/packages/frontend/src/pages/settings/avatar-decoration.vue b/packages/frontend/src/pages/settings/avatar-decoration.vue
index dbc0d3697d..ba25eee175 100644
--- a/packages/frontend/src/pages/settings/avatar-decoration.vue
+++ b/packages/frontend/src/pages/settings/avatar-decoration.vue
@@ -56,7 +56,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
import { signinRequired } from '@/account.js';
import MkInfo from '@/components/MkInfo.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const $i = signinRequired();
@@ -131,7 +131,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.avatarDecorations,
icon: 'ti ti-sparkles',
}));
diff --git a/packages/frontend/src/pages/settings/custom-css.vue b/packages/frontend/src/pages/settings/custom-css.vue
index 4cdc0d957d..9b0e04860e 100644
--- a/packages/frontend/src/pages/settings/custom-css.vue
+++ b/packages/frontend/src/pages/settings/custom-css.vue
@@ -20,7 +20,7 @@ import FormInfo from '@/components/MkInfo.vue';
import * as os from '@/os.js';
import { unisonReload } from '@/utility/unison-reload.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { miLocalStorage } from '@/local-storage.js';
const localCustomCss = ref(miLocalStorage.getItem('customCss') ?? '');
@@ -45,7 +45,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.customCss,
icon: 'ti ti-code',
}));
diff --git a/packages/frontend/src/pages/settings/deck.vue b/packages/frontend/src/pages/settings/deck.vue
index 6186c493f9..e7c5c942e9 100644
--- a/packages/frontend/src/pages/settings/deck.vue
+++ b/packages/frontend/src/pages/settings/deck.vue
@@ -24,7 +24,7 @@ import { computed } from 'vue';
import MkSwitch from '@/components/MkSwitch.vue';
import MkRadios from '@/components/MkRadios.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { prefer } from '@/preferences.js';
const navWindow = prefer.model('deck.navWindow');
@@ -36,7 +36,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.deck,
icon: 'ti ti-columns',
}));
diff --git a/packages/frontend/src/pages/settings/drive-cleaner.vue b/packages/frontend/src/pages/settings/drive-cleaner.vue
index 3c50677746..6b73560174 100644
--- a/packages/frontend/src/pages/settings/drive-cleaner.vue
+++ b/packages/frontend/src/pages/settings/drive-cleaner.vue
@@ -57,7 +57,7 @@ import MkPagination from '@/components/MkPagination.vue';
import MkDriveFileThumbnail from '@/components/MkDriveFileThumbnail.vue';
import { i18n } from '@/i18n.js';
import bytes from '@/filters/bytes.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkSelect from '@/components/MkSelect.vue';
import { getDriveFileMenu } from '@/utility/get-drive-file-menu.js';
@@ -118,7 +118,7 @@ function onContextMenu(ev: MouseEvent, file): void {
os.contextMenu(getDriveFileMenu(file), ev);
}
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.drivecleaner,
icon: 'ti ti-trash',
}));
diff --git a/packages/frontend/src/pages/settings/drive.vue b/packages/frontend/src/pages/settings/drive.vue
index 8e7c7e82df..8cc70f177f 100644
--- a/packages/frontend/src/pages/settings/drive.vue
+++ b/packages/frontend/src/pages/settings/drive.vue
@@ -99,7 +99,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import bytes from '@/filters/bytes.js';
import MkChart from '@/components/MkChart.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { signinRequired } from '@/account.js';
import { prefer } from '@/preferences.js';
import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue';
@@ -174,7 +174,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.drive,
icon: 'ti ti-cloud',
}));
diff --git a/packages/frontend/src/pages/settings/email.vue b/packages/frontend/src/pages/settings/email.vue
index 1ca2e8f085..0cbda44882 100644
--- a/packages/frontend/src/pages/settings/email.vue
+++ b/packages/frontend/src/pages/settings/email.vue
@@ -69,7 +69,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { signinRequired } from '@/account.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { instance } from '@/instance.js';
const $i = signinRequired();
@@ -125,7 +125,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.email,
icon: 'ti ti-mail',
}));
diff --git a/packages/frontend/src/pages/settings/emoji-picker.vue b/packages/frontend/src/pages/settings/emoji-picker.vue
index 36cebb05dc..d8f27078ae 100644
--- a/packages/frontend/src/pages/settings/emoji-picker.vue
+++ b/packages/frontend/src/pages/settings/emoji-picker.vue
@@ -144,7 +144,7 @@ import MkSelect from '@/components/MkSelect.vue';
import * as os from '@/os.js';
import { store } from '@/store.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { deepClone } from '@/utility/clone.js';
import { reactionPicker } from '@/utility/reaction-picker.js';
import { emojiPicker } from '@/utility/emoji-picker.js';
@@ -251,7 +251,7 @@ watch(pinnedEmojis, () => {
deep: true,
});
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.emojiPicker,
icon: 'ti ti-mood-happy',
}));
diff --git a/packages/frontend/src/pages/settings/import-export.vue b/packages/frontend/src/pages/settings/import-export.vue
index 1048f42027..ad5529f1e7 100644
--- a/packages/frontend/src/pages/settings/import-export.vue
+++ b/packages/frontend/src/pages/settings/import-export.vue
@@ -153,7 +153,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { selectFile } from '@/utility/select-file.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { $i } from '@/account.js';
import { store } from '@/store.js';
@@ -250,7 +250,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.importAndExport,
icon: 'ti ti-package',
}));
diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue
index b782a575c7..d93fb176b5 100644
--- a/packages/frontend/src/pages/settings/index.vue
+++ b/packages/frontend/src/pages/settings/index.vue
@@ -33,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script setup lang="ts">
import { computed, onActivated, onMounted, onUnmounted, ref, shallowRef, watch } from 'vue';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import type { SuperMenuDef } from '@/components/MkSuperMenu.vue';
import { i18n } from '@/i18n.js';
import MkInfo from '@/components/MkInfo.vue';
@@ -41,7 +41,7 @@ import MkSuperMenu from '@/components/MkSuperMenu.vue';
import { signout, $i } from '@/account.js';
import { clearCache } from '@/utility/clear-cache.js';
import { instance } from '@/instance.js';
-import { definePageMetadata, provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
+import { definePage, provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import * as os from '@/os.js';
import { useRouter } from '@/router/supplier.js';
import { searchIndexes } from '@/utility/autogen/settings-search-index.js';
@@ -252,7 +252,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => INFO.value);
+definePage(() => INFO.value);
// w 890
// h 700
</script>
diff --git a/packages/frontend/src/pages/settings/mute-block.vue b/packages/frontend/src/pages/settings/mute-block.vue
index 6fa2b5e689..d9c190f546 100644
--- a/packages/frontend/src/pages/settings/mute-block.vue
+++ b/packages/frontend/src/pages/settings/mute-block.vue
@@ -178,7 +178,7 @@ import XWordMute from './mute-block.word-mute.vue';
import MkPagination from '@/components/MkPagination.vue';
import { userPage } from '@/filters/user.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
import * as os from '@/os.js';
import { instance, infoImageUrl } from '@/instance.js';
@@ -287,7 +287,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.muteAndBlock,
icon: 'ti ti-ban',
}));
diff --git a/packages/frontend/src/pages/settings/navbar.vue b/packages/frontend/src/pages/settings/navbar.vue
index 28e6bcc161..706cb731eb 100644
--- a/packages/frontend/src/pages/settings/navbar.vue
+++ b/packages/frontend/src/pages/settings/navbar.vue
@@ -56,7 +56,7 @@ import { navbarItemDef } from '@/navbar.js';
import { store } from '@/store.js';
import { reloadAsk } from '@/utility/reload-ask.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { prefer } from '@/preferences.js';
import { PREF_DEF } from '@/preferences/def.js';
@@ -106,7 +106,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.navbar,
icon: 'ti ti-list',
}));
diff --git a/packages/frontend/src/pages/settings/notifications.vue b/packages/frontend/src/pages/settings/notifications.vue
index dfbcf91a3f..ca0de0b4b1 100644
--- a/packages/frontend/src/pages/settings/notifications.vue
+++ b/packages/frontend/src/pages/settings/notifications.vue
@@ -73,7 +73,7 @@ import * as os from '@/os.js';
import { signinRequired } from '@/account.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkPushNotificationAllowButton from '@/components/MkPushNotificationAllowButton.vue';
import { notificationTypes } from '@@/js/const.js';
@@ -138,7 +138,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.notifications,
icon: 'ti ti-bell',
}));
diff --git a/packages/frontend/src/pages/settings/other.vue b/packages/frontend/src/pages/settings/other.vue
index f2d998579f..835739a6c6 100644
--- a/packages/frontend/src/pages/settings/other.vue
+++ b/packages/frontend/src/pages/settings/other.vue
@@ -120,7 +120,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import { store } from '@/store.js';
import { signout, signinRequired } from '@/account.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { reloadAsk } from '@/utility/reload-ask.js';
import FormSection from '@/components/form/section.vue';
import { prefer } from '@/preferences.js';
@@ -175,7 +175,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.other,
icon: 'ti ti-dots',
}));
diff --git a/packages/frontend/src/pages/settings/plugin.install.vue b/packages/frontend/src/pages/settings/plugin.install.vue
index 915eb8031c..e984ed7f8a 100644
--- a/packages/frontend/src/pages/settings/plugin.install.vue
+++ b/packages/frontend/src/pages/settings/plugin.install.vue
@@ -24,7 +24,7 @@ import MkButton from '@/components/MkButton.vue';
import FormInfo from '@/components/MkInfo.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { installPlugin } from '@/plugin.js';
import { useRouter } from '@/router/supplier.js';
@@ -53,7 +53,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts._plugin.install,
icon: 'ti ti-download',
}));
diff --git a/packages/frontend/src/pages/settings/plugin.vue b/packages/frontend/src/pages/settings/plugin.vue
index 32c35e3670..93a0e8a850 100644
--- a/packages/frontend/src/pages/settings/plugin.vue
+++ b/packages/frontend/src/pages/settings/plugin.vue
@@ -99,7 +99,7 @@ import MkCode from '@/components/MkCode.vue';
import MkFolder from '@/components/MkFolder.vue';
import MkKeyValue from '@/components/MkKeyValue.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { changePluginActive, configPlugin, pluginLogs, uninstallPlugin, reloadPlugin } from '@/plugin.js';
import { prefer } from '@/preferences.js';
import * as os from '@/os.js';
@@ -138,7 +138,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.plugins,
icon: 'ti ti-plug',
}));
diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue
index f3f52d0914..58e01df633 100644
--- a/packages/frontend/src/pages/settings/preferences.vue
+++ b/packages/frontend/src/pages/settings/preferences.vue
@@ -377,7 +377,7 @@ import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { reloadAsk } from '@/utility/reload-ask.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { miLocalStorage } from '@/local-storage.js';
import { prefer } from '@/preferences.js';
import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue';
@@ -521,7 +521,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.general,
icon: 'ti ti-adjustments',
}));
diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue
index 7b69e91be9..d42dd323e0 100644
--- a/packages/frontend/src/pages/settings/privacy.vue
+++ b/packages/frontend/src/pages/settings/privacy.vue
@@ -182,7 +182,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
import { signinRequired } from '@/account.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import FormSlot from '@/components/form/slot.vue';
import { formatDateTimeString } from '@/utility/format-time-string.js';
import MkInput from '@/components/MkInput.vue';
@@ -263,7 +263,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.privacy,
icon: 'ti ti-lock-open',
}));
diff --git a/packages/frontend/src/pages/settings/profile.vue b/packages/frontend/src/pages/settings/profile.vue
index 5efd986ce7..1d85ba7834 100644
--- a/packages/frontend/src/pages/settings/profile.vue
+++ b/packages/frontend/src/pages/settings/profile.vue
@@ -166,7 +166,7 @@ import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { signinRequired } from '@/account.js';
import { langmap } from '@/utility/langmap.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { claimAchievement } from '@/utility/achievements.js';
import { store } from '@/store.js';
import { globalEvents } from '@/events.js';
@@ -316,7 +316,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.profile,
icon: 'ti ti-user',
}));
diff --git a/packages/frontend/src/pages/settings/roles.vue b/packages/frontend/src/pages/settings/roles.vue
index 4b0daff7fa..c1cabad2c3 100644
--- a/packages/frontend/src/pages/settings/roles.vue
+++ b/packages/frontend/src/pages/settings/roles.vue
@@ -28,7 +28,7 @@ import FormSection from '@/components/form/section.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { signinRequired } from '@/account.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import MkRolePreview from '@/components/MkRolePreview.vue';
const $i = signinRequired();
@@ -37,7 +37,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.roles,
icon: 'ti ti-badges',
}));
diff --git a/packages/frontend/src/pages/settings/security.vue b/packages/frontend/src/pages/settings/security.vue
index fec760582c..9b664fa98a 100644
--- a/packages/frontend/src/pages/settings/security.vue
+++ b/packages/frontend/src/pages/settings/security.vue
@@ -58,7 +58,7 @@ import MkPagination from '@/components/MkPagination.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const pagination = {
endpoint: 'i/signin-history' as const,
@@ -112,7 +112,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.security,
icon: 'ti ti-lock',
}));
diff --git a/packages/frontend/src/pages/settings/sounds.vue b/packages/frontend/src/pages/settings/sounds.vue
index ea634646f6..0c447b1a67 100644
--- a/packages/frontend/src/pages/settings/sounds.vue
+++ b/packages/frontend/src/pages/settings/sounds.vue
@@ -65,7 +65,7 @@ import MkButton from '@/components/MkButton.vue';
import FormSection from '@/components/form/section.vue';
import MkFolder from '@/components/MkFolder.vue';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { operationTypes } from '@/utility/sound.js';
import MkSwitch from '@/components/MkSwitch.vue';
import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue';
@@ -117,7 +117,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.sounds,
icon: 'ti ti-music',
}));
diff --git a/packages/frontend/src/pages/settings/statusbar.vue b/packages/frontend/src/pages/settings/statusbar.vue
index 7b09093c85..7e6a536216 100644
--- a/packages/frontend/src/pages/settings/statusbar.vue
+++ b/packages/frontend/src/pages/settings/statusbar.vue
@@ -23,7 +23,7 @@ import MkFolder from '@/components/MkFolder.vue';
import MkButton from '@/components/MkButton.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { prefer } from '@/preferences.js';
const statusbars = prefer.r.statusbars;
@@ -50,7 +50,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.statusbar,
icon: 'ti ti-list',
}));
diff --git a/packages/frontend/src/pages/settings/theme.install.vue b/packages/frontend/src/pages/settings/theme.install.vue
index 92f4893f1a..68e4bef5c4 100644
--- a/packages/frontend/src/pages/settings/theme.install.vue
+++ b/packages/frontend/src/pages/settings/theme.install.vue
@@ -23,7 +23,7 @@ import MkButton from '@/components/MkButton.vue';
import { parseThemeCode, previewTheme, installTheme } from '@/theme.js';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useRouter } from '@/router/supplier.js';
const router = useRouter();
@@ -63,7 +63,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts._theme.install,
icon: 'ti ti-download',
}));
diff --git a/packages/frontend/src/pages/settings/theme.manage.vue b/packages/frontend/src/pages/settings/theme.manage.vue
index cc730cf4f0..e2b48ea232 100644
--- a/packages/frontend/src/pages/settings/theme.manage.vue
+++ b/packages/frontend/src/pages/settings/theme.manage.vue
@@ -43,7 +43,7 @@ import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
import * as os from '@/os.js';
import { getThemes, removeTheme } from '@/theme-store.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const installedThemes = ref(getThemes());
const builtinThemes = getBuiltinThemesRef();
@@ -77,7 +77,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts._theme.manage,
icon: 'ti ti-tool',
}));
diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue
index f536b92599..71dba777b7 100644
--- a/packages/frontend/src/pages/settings/theme.vue
+++ b/packages/frontend/src/pages/settings/theme.vue
@@ -91,7 +91,7 @@ import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
import { uniqueBy } from '@/utility/array.js';
import { getThemes } from '@/theme-store.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { miLocalStorage } from '@/local-storage.js';
import { reloadAsk } from '@/utility/reload-ask.js';
import { prefer } from '@/preferences.js';
@@ -230,7 +230,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.theme,
icon: 'ti ti-palette',
}));
diff --git a/packages/frontend/src/pages/settings/webhook.edit.vue b/packages/frontend/src/pages/settings/webhook.edit.vue
index 83902fe6ba..2de948c69d 100644
--- a/packages/frontend/src/pages/settings/webhook.edit.vue
+++ b/packages/frontend/src/pages/settings/webhook.edit.vue
@@ -78,7 +78,7 @@ import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { useRouter } from '@/router/supplier.js';
const router = useRouter();
@@ -155,7 +155,7 @@ const headerActions = computed(() => []);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Edit webhook',
icon: 'ti ti-webhook',
}));
diff --git a/packages/frontend/src/pages/settings/webhook.new.vue b/packages/frontend/src/pages/settings/webhook.new.vue
index ef5b7393bb..e853f967cb 100644
--- a/packages/frontend/src/pages/settings/webhook.new.vue
+++ b/packages/frontend/src/pages/settings/webhook.new.vue
@@ -46,7 +46,7 @@ import MkSwitch from '@/components/MkSwitch.vue';
import MkButton from '@/components/MkButton.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const name = ref('');
const url = ref('');
@@ -82,7 +82,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Create new webhook',
icon: 'ti ti-webhook',
}));
diff --git a/packages/frontend/src/pages/settings/webhook.vue b/packages/frontend/src/pages/settings/webhook.vue
index 7f84d87973..bf8af8cdce 100644
--- a/packages/frontend/src/pages/settings/webhook.vue
+++ b/packages/frontend/src/pages/settings/webhook.vue
@@ -37,7 +37,7 @@ import { computed } from 'vue';
import MkPagination from '@/components/MkPagination.vue';
import FormSection from '@/components/form/section.vue';
import FormLink from '@/components/form/link.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
const pagination = {
@@ -50,7 +50,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: 'Webhook',
icon: 'ti ti-webhook',
}));
diff --git a/packages/frontend/src/pages/share.vue b/packages/frontend/src/pages/share.vue
index fc93f86a5b..abd84c8590 100644
--- a/packages/frontend/src/pages/share.vue
+++ b/packages/frontend/src/pages/share.vue
@@ -38,7 +38,7 @@ import MkButton from '@/components/MkButton.vue';
import MkPostForm from '@/components/MkPostForm.vue';
import * as os from '@/os.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { postMessageToParentWindow } from '@/utility/post-message.js';
import { i18n } from '@/i18n.js';
@@ -199,7 +199,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.share,
icon: 'ti ti-share',
}));
diff --git a/packages/frontend/src/pages/tag.vue b/packages/frontend/src/pages/tag.vue
index f7e0302ca7..1af69d82db 100644
--- a/packages/frontend/src/pages/tag.vue
+++ b/packages/frontend/src/pages/tag.vue
@@ -23,7 +23,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { computed, ref } from 'vue';
import MkNotes from '@/components/MkNotes.vue';
import MkButton from '@/components/MkButton.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { $i } from '@/account.js';
import { store } from '@/store.js';
@@ -68,7 +68,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: props.tag,
icon: 'ti ti-hash',
}));
diff --git a/packages/frontend/src/pages/theme-editor.vue b/packages/frontend/src/pages/theme-editor.vue
index 43ac5f38d7..11971756f4 100644
--- a/packages/frontend/src/pages/theme-editor.vue
+++ b/packages/frontend/src/pages/theme-editor.vue
@@ -93,7 +93,7 @@ import { store } from '@/store.js';
import { addTheme } from '@/theme-store.js';
import { i18n } from '@/i18n.js';
import { useLeaveGuard } from '@/utility/use-leave-guard.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { prefer } from '@/preferences.js';
const bgColors = [
@@ -228,7 +228,7 @@ const headerActions = computed(() => [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.themeEditor,
icon: 'ti ti-palette',
}));
diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue
index 8d64b0a974..0ac6979b05 100644
--- a/packages/frontend/src/pages/timeline.vue
+++ b/packages/frontend/src/pages/timeline.vue
@@ -49,7 +49,7 @@ import { misskeyApi } from '@/utility/misskey-api.js';
import { store } from '@/store.js';
import { i18n } from '@/i18n.js';
import { $i } from '@/account.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { antennasCache, userListsCache, favoritedChannelsCache } from '@/cache.js';
import { deviceKind } from '@/utility/device-kind.js';
import { deepMerge } from '@/utility/merge.js';
@@ -333,7 +333,7 @@ const headerTabsWhenNotLogin = computed(() => [...availableBasicTimelines().map(
iconOnly: true,
}))] as Tab[]);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.timeline,
icon: isBasicTimeline(src.value) ? basicTimelineIconClass(src.value) : 'ti ti-home',
}));
diff --git a/packages/frontend/src/pages/user-list-timeline.vue b/packages/frontend/src/pages/user-list-timeline.vue
index 7ab1c91975..d4c7c9386d 100644
--- a/packages/frontend/src/pages/user-list-timeline.vue
+++ b/packages/frontend/src/pages/user-list-timeline.vue
@@ -29,7 +29,7 @@ import * as Misskey from 'misskey-js';
import MkTimeline from '@/components/MkTimeline.vue';
import { scroll } from '@@/js/scroll.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { useRouter } from '@/router/supplier.js';
@@ -70,7 +70,7 @@ const headerActions = computed(() => list.value ? [{
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: list.value ? list.value.name : i18n.ts.lists,
icon: 'ti ti-list',
}));
diff --git a/packages/frontend/src/pages/user-tag.vue b/packages/frontend/src/pages/user-tag.vue
index af543ac723..fc9ff92080 100644
--- a/packages/frontend/src/pages/user-tag.vue
+++ b/packages/frontend/src/pages/user-tag.vue
@@ -18,7 +18,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed } from 'vue';
import MkUserList from '@/components/MkUserList.vue';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
const props = defineProps<{
tag: string;
@@ -34,7 +34,7 @@ const tagUsers = computed(() => ({
},
}));
-definePageMetadata(() => ({
+definePage(() => ({
title: props.tag,
icon: 'ti ti-user-search',
}));
diff --git a/packages/frontend/src/pages/user/followers.vue b/packages/frontend/src/pages/user/followers.vue
index f970401646..d9b2623e27 100644
--- a/packages/frontend/src/pages/user/followers.vue
+++ b/packages/frontend/src/pages/user/followers.vue
@@ -23,7 +23,7 @@ import { computed, watch, ref } from 'vue';
import * as Misskey from 'misskey-js';
import XFollowList from './follow-list.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
const props = withDefaults(defineProps<{
@@ -52,7 +52,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.user,
icon: 'ti ti-user',
...user.value ? {
diff --git a/packages/frontend/src/pages/user/following.vue b/packages/frontend/src/pages/user/following.vue
index 08a6630873..6f8dfa0124 100644
--- a/packages/frontend/src/pages/user/following.vue
+++ b/packages/frontend/src/pages/user/following.vue
@@ -23,7 +23,7 @@ import { computed, watch, ref } from 'vue';
import * as Misskey from 'misskey-js';
import XFollowList from './follow-list.vue';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
const props = withDefaults(defineProps<{
@@ -52,7 +52,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.user,
icon: 'ti ti-user',
...user.value ? {
diff --git a/packages/frontend/src/pages/user/index.vue b/packages/frontend/src/pages/user/index.vue
index 3b27f3a08c..b5127de390 100644
--- a/packages/frontend/src/pages/user/index.vue
+++ b/packages/frontend/src/pages/user/index.vue
@@ -36,7 +36,7 @@ import { defineAsyncComponent, computed, watch, ref } from 'vue';
import * as Misskey from 'misskey-js';
import { acct as getAcct } from '@/filters/user.js';
import { misskeyApi } from '@/utility/misskey-api.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { i18n } from '@/i18n.js';
import { $i } from '@/account.js';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
@@ -147,7 +147,7 @@ const headerTabs = computed(() => user.value ? [{
icon: 'ti ti-code',
}] : []);
-definePageMetadata(() => ({
+definePage(() => ({
title: i18n.ts.user,
icon: 'ti ti-user',
...user.value ? {
diff --git a/packages/frontend/src/pages/welcome.vue b/packages/frontend/src/pages/welcome.vue
index 724356737c..d3e571c053 100644
--- a/packages/frontend/src/pages/welcome.vue
+++ b/packages/frontend/src/pages/welcome.vue
@@ -16,7 +16,7 @@ import * as Misskey from 'misskey-js';
import XSetup from './welcome.setup.vue';
import XEntrance from './welcome.entrance.a.vue';
import { instanceName } from '@@/js/config.js';
-import { definePageMetadata } from '@/utility/page-metadata.js';
+import { definePage } from '@/page.js';
import { fetchInstance } from '@/instance.js';
const instance = ref<Misskey.entities.MetaDetailed | null>(null);
@@ -29,7 +29,7 @@ const headerActions = computed(() => []);
const headerTabs = computed(() => []);
-definePageMetadata(() => ({
+definePage(() => ({
title: instanceName,
icon: null,
}));
diff --git a/packages/frontend/src/ui/classic.vue b/packages/frontend/src/ui/classic.vue
index 3faacc5125..3f6f74a6a9 100644
--- a/packages/frontend/src/ui/classic.vue
+++ b/packages/frontend/src/ui/classic.vue
@@ -51,10 +51,10 @@ import { instanceName } from '@@/js/config.js';
import { isLink } from '@@/js/is-link.js';
import XSidebar from './classic.sidebar.vue';
import XCommon from './_common_/common.vue';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import { StickySidebar } from '@/utility/sticky-sidebar.js';
import * as os from '@/os.js';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import { store } from '@/store.js';
import { i18n } from '@/i18n.js';
import { miLocalStorage } from '@/local-storage.js';
diff --git a/packages/frontend/src/ui/deck/main-column.vue b/packages/frontend/src/ui/deck/main-column.vue
index bab938af20..282aa7c833 100644
--- a/packages/frontend/src/ui/deck/main-column.vue
+++ b/packages/frontend/src/ui/deck/main-column.vue
@@ -24,10 +24,10 @@ import { getScrollContainer } from '@@/js/scroll.js';
import { isLink } from '@@/js/is-link.js';
import XColumn from './column.vue';
import type { Column } from '@/deck.js';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import { useScrollPositionManager } from '@/nirax.js';
import { mainRouter } from '@/router/main.js';
import { prefer } from '@/preferences.js';
diff --git a/packages/frontend/src/ui/minimum.vue b/packages/frontend/src/ui/minimum.vue
index 919a6f2246..a590c29607 100644
--- a/packages/frontend/src/ui/minimum.vue
+++ b/packages/frontend/src/ui/minimum.vue
@@ -16,8 +16,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, provide, ref } from 'vue';
import XCommon from './_common_/common.vue';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
+import type { PageMetadata } from '@/page.js';
import { instanceName } from '@@/js/config.js';
import { mainRouter } from '@/router/main.js';
diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue
index 8d0015a046..de1fff7e11 100644
--- a/packages/frontend/src/ui/universal.vue
+++ b/packages/frontend/src/ui/universal.vue
@@ -103,13 +103,13 @@ import { isLink } from '@@/js/is-link.js';
import XCommon from './_common_/common.vue';
import type { Ref } from 'vue';
import type MkStickyContainer from '@/components/global/MkStickyContainer.vue';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import XDrawerMenu from '@/ui/_common_/navbar-for-mobile.vue';
import * as os from '@/os.js';
import { navbarItemDef } from '@/navbar.js';
import { i18n } from '@/i18n.js';
import { $i } from '@/account.js';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import { deviceKind } from '@/utility/device-kind.js';
import { miLocalStorage } from '@/local-storage.js';
import { useScrollPositionManager } from '@/nirax.js';
diff --git a/packages/frontend/src/ui/visitor.vue b/packages/frontend/src/ui/visitor.vue
index 3125f74922..c885dd2a68 100644
--- a/packages/frontend/src/ui/visitor.vue
+++ b/packages/frontend/src/ui/visitor.vue
@@ -72,12 +72,12 @@ SPDX-License-Identifier: AGPL-3.0-only
import { onMounted, provide, ref, computed } from 'vue';
import { instanceName } from '@@/js/config.js';
import XCommon from './_common_/common.vue';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import type { PageMetadata } from '@/page.js';
import * as os from '@/os.js';
import { instance } from '@/instance.js';
import XSigninDialog from '@/components/MkSigninDialog.vue';
import XSignupDialog from '@/components/MkSignupDialog.vue';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
import { i18n } from '@/i18n.js';
import MkVisitorDashboard from '@/components/MkVisitorDashboard.vue';
import { mainRouter } from '@/router/main.js';
diff --git a/packages/frontend/src/ui/zen.vue b/packages/frontend/src/ui/zen.vue
index f4db5d30fe..d64e5270c0 100644
--- a/packages/frontend/src/ui/zen.vue
+++ b/packages/frontend/src/ui/zen.vue
@@ -24,8 +24,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { computed, provide, ref } from 'vue';
import XCommon from './_common_/common.vue';
-import { provideMetadataReceiver, provideReactiveMetadata } from '@/utility/page-metadata.js';
-import type { PageMetadata } from '@/utility/page-metadata.js';
+import { provideMetadataReceiver, provideReactiveMetadata } from '@/page.js';
+import type { PageMetadata } from '@/page.js';
import { instanceName, ui } from '@@/js/config.js';
import { i18n } from '@/i18n.js';
import { mainRouter } from '@/router/main.js';