From 866aded6bcdd44e19f55bc4c9bf4aa0a8a67f530 Mon Sep 17 00:00:00 2001
From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Sun, 19 Mar 2023 20:28:19 +0900
Subject: [PATCH] =?UTF-8?q?fix:=20PC=E7=89=88=E8=A8=AD=E5=AE=9A=E3=83=9A?=
 =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=81=A7=E3=82=B9=E3=83=9E=E3=83=9B=E7=94=A8?=
 =?UTF-8?q?UI=E3=81=8C=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=82=8B?=
 =?UTF-8?q?=E3=81=AE=E3=82=92=E9=98=B2=E3=81=90=E3=83=AA=E3=83=80=E3=82=A4?=
 =?UTF-8?q?=E3=83=AC=E3=82=AF=E3=83=88=E3=82=92=E8=BF=BD=E5=8A=A0=20(#1032?=
 =?UTF-8?q?6)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* (Fix misskey-dev#10324)設定画面:PC版UIへのリダイレクトをルート遷移時にも実行

* Update changelog

* (fix) missing semicolon

* (fix) strict equals
---
 CHANGELOG.md                                   | 1 +
 packages/frontend/src/pages/admin/index.vue    | 8 +++++++-
 packages/frontend/src/pages/settings/index.vue | 8 +++++++-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 66b2d50dc0..d7a6814049 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -59,6 +59,7 @@
 - リテンション分析が上手く機能しないことがあるのを修正
 - 空のアンテナが作成できないように修正
 - 特定の条件で通報が見れない問題を修正
+- PC版にて「設定」「コントロールパネル」のリンクを2度以上続けてクリックした際に空白のページが表示される問題を修正
 
 ## 13.9.2 (2023/03/06)
 
diff --git a/packages/frontend/src/pages/admin/index.vue b/packages/frontend/src/pages/admin/index.vue
index 550de24bb2..8aae39cba1 100644
--- a/packages/frontend/src/pages/admin/index.vue
+++ b/packages/frontend/src/pages/admin/index.vue
@@ -12,7 +12,7 @@
 				<MkInfo v-if="noBotProtection" warn class="info">{{ i18n.ts.noBotProtectionWarning }} <MkA to="/admin/security" class="_link">{{ i18n.ts.configure }}</MkA></MkInfo>
 				<MkInfo v-if="noEmailServer" warn class="info">{{ i18n.ts.noEmailServerWarning }} <MkA to="/admin/email-settings" class="_link">{{ i18n.ts.configure }}</MkA></MkInfo>
 
-				<MkSuperMenu :def="menuDef" :grid="currentPage?.route.name == null"></MkSuperMenu>
+				<MkSuperMenu :def="menuDef" :grid="narrow"></MkSuperMenu>
 			</div>
 		</MkSpacer>
 	</div>
@@ -220,6 +220,12 @@ onUnmounted(() => {
 	ro.disconnect();
 });
 
+watch(router.currentRef, (to) => {
+	if (to.route.path === "/admin" && to.child?.route.name == null && !narrow) {
+		router.replace('/admin/overview');
+	}
+});
+
 provideMetadataReceiver((info) => {
 	if (info == null) {
 		childInfo = null;
diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue
index f1a450e18e..ae36466eec 100644
--- a/packages/frontend/src/pages/settings/index.vue
+++ b/packages/frontend/src/pages/settings/index.vue
@@ -7,7 +7,7 @@
 				<div v-if="!narrow || currentPage?.route.name == null" class="nav">
 					<div class="baaadecd">
 						<MkInfo v-if="emailNotConfigured" warn class="info">{{ i18n.ts.emailNotConfiguredWarning }} <MkA to="/settings/email" class="_link">{{ i18n.ts.configure }}</MkA></MkInfo>
-						<MkSuperMenu :def="menuDef" :grid="currentPage?.route.name == null"></MkSuperMenu>
+						<MkSuperMenu :def="menuDef" :grid="narrow"></MkSuperMenu>
 					</div>
 				</div>
 				<div v-if="!(narrow && currentPage?.route.name == null)" class="main">
@@ -230,6 +230,12 @@ onUnmounted(() => {
 	ro.disconnect();
 });
 
+watch(router.currentRef, (to) => {
+	if (to.route.name === "settings" && to.child?.route.name == null && !narrow) {
+		router.replace('/settings/profile');
+	}
+});
+
 const emailNotConfigured = computed(() => instance.enableEmail && ($i.email == null || !$i.emailVerified));
 
 provideMetadataReceiver((info) => {
-- 
GitLab