From 6fdb004d480049b4dbef4201c0b10f56f08979a5 Mon Sep 17 00:00:00 2001
From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Date: Fri, 7 Jun 2024 16:03:30 +0900
Subject: [PATCH] =?UTF-8?q?=E5=86=85=E9=83=A8router=E3=81=A7=E9=81=B7?=
 =?UTF-8?q?=E7=A7=BB=E3=81=97=E3=81=9F=E5=A0=B4=E5=90=88=E3=81=AB=E3=81=AF?=
 =?UTF-8?q?=E6=AD=A3=E8=A6=8F=E3=83=9A=E3=83=BC=E3=82=B8=E3=81=AB=E8=BB=A2?=
 =?UTF-8?q?=E9=80=81=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/frontend/src/pages/embed/clip.vue         | 14 +++++++++-----
 packages/frontend/src/pages/embed/note.vue         | 14 +++++++++-----
 .../frontend/src/pages/embed/user-timeline.vue     | 14 +++++++++-----
 3 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/packages/frontend/src/pages/embed/clip.vue b/packages/frontend/src/pages/embed/clip.vue
index 95f299d441..0038a052a9 100644
--- a/packages/frontend/src/pages/embed/clip.vue
+++ b/packages/frontend/src/pages/embed/clip.vue
@@ -40,7 +40,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 </template>
 
 <script setup lang="ts">
-import { ref, computed, shallowRef, inject } from 'vue';
+import { ref, computed, shallowRef, inject, onActivated } from 'vue';
 import * as Misskey from 'misskey-js';
 import MkNotes from '@/components/MkNotes.vue';
 import XNotFound from '@/pages/not-found.vue';
@@ -60,12 +60,16 @@ const props = defineProps<{
 	enableAutoLoad?: string;
 }>();
 
-const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
+function redirectIfNotEmbedPage() {
+	const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
 
-if (!inEmbedPage) {
-	const router = useRouter();
-	router.replace(`/clips/${props.clipId}`);
+	if (!inEmbedPage) {
+		const router = useRouter();
+		router.replace(`/clips/${props.clipId}`);
+	}
 }
+redirectIfNotEmbedPage();
+onActivated(redirectIfNotEmbedPage);
 
 // デフォルト: true
 const normalizedShowHeader = computed(() => props.showHeader !== 'false');
diff --git a/packages/frontend/src/pages/embed/note.vue b/packages/frontend/src/pages/embed/note.vue
index 40befb438e..928494adc2 100644
--- a/packages/frontend/src/pages/embed/note.vue
+++ b/packages/frontend/src/pages/embed/note.vue
@@ -12,7 +12,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 </template>
 
 <script setup lang="ts">
-import { ref, provide, inject } from 'vue';
+import { ref, provide, inject, onActivated } from 'vue';
 import * as Misskey from 'misskey-js';
 import MkNoteDetailed from '@/components/MkNoteDetailed.vue';
 import XNotFound from '@/pages/not-found.vue';
@@ -24,12 +24,16 @@ const props = defineProps<{
 	noteId: string;
 }>();
 
-const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
+function redirectIfNotEmbedPage() {
+	const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
 
-if (!inEmbedPage) {
-	const router = useRouter();
-	router.replace(`/notes/${props.noteId}`);
+	if (!inEmbedPage) {
+		const router = useRouter();
+		router.replace(`/notes/${props.noteId}`);
+	}
 }
+redirectIfNotEmbedPage();
+onActivated(redirectIfNotEmbedPage);
 
 provide('EMBED_ORIGINAL_ENTITY_URL', `${url}/notes/${props.noteId}`);
 
diff --git a/packages/frontend/src/pages/embed/user-timeline.vue b/packages/frontend/src/pages/embed/user-timeline.vue
index 268e668cfa..7faa4a6fbb 100644
--- a/packages/frontend/src/pages/embed/user-timeline.vue
+++ b/packages/frontend/src/pages/embed/user-timeline.vue
@@ -46,7 +46,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 </template>
 
 <script setup lang="ts">
-import { ref, computed, shallowRef, inject } from 'vue';
+import { ref, computed, shallowRef, inject, onActivated } from 'vue';
 import * as Misskey from 'misskey-js';
 import MkNotes from '@/components/MkNotes.vue';
 import XNotFound from '@/pages/not-found.vue';
@@ -66,12 +66,16 @@ const props = defineProps<{
 	enableAutoLoad?: string;
 }>();
 
-const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
+function redirectIfNotEmbedPage() {
+	const inEmbedPage = inject<boolean>('EMBED_PAGE', false);
 
-if (!inEmbedPage) {
-	const router = useRouter();
-	router.replace(`/@${props.username}`);
+	if (!inEmbedPage) {
+		const router = useRouter();
+		router.replace(`/@${props.username}`);
+	}
 }
+redirectIfNotEmbedPage();
+onActivated(redirectIfNotEmbedPage);
 
 // デフォルト: true
 const normalizedShowHeader = computed(() => props.showHeader !== 'false');