From 2f560e45da437d90c0316d9c14172e55fe59974d Mon Sep 17 00:00:00 2001 From: FruitRiin Date: Tue, 21 Nov 2023 00:59:25 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=89=E3=83=A9=E3=82=A4=E3=83=96=E3=81=AE?= =?UTF-8?q?=E7=89=B9=E5=AE=9A=E3=83=87=E3=82=A3=E3=83=AC=E3=82=AF=E3=83=88?= =?UTF-8?q?=E3=83=AA=E3=82=92URL=E3=81=8B=E3=82=89=E9=96=8B=E3=81=8F?= =?UTF-8?q?=E8=AB=B8=E3=80=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/components/MkDrive.vue | 11 +++++++++++ packages/frontend/src/pages/drive.vue | 16 ++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue index 71bb4ecfef..788ab2b503 100644 --- a/packages/frontend/src/components/MkDrive.vue +++ b/packages/frontend/src/components/MkDrive.vue @@ -107,6 +107,7 @@ import { defaultStore } from '@/store.js'; import { i18n } from '@/i18n.js'; import { uploadFile, uploads } from '@/scripts/upload.js'; import { claimAchievement } from '@/scripts/achievements.js'; +import { mainRouter, useRouter } from '@/router.js'; const props = withDefaults(defineProps<{ initialFolder?: Misskey.entities.DriveFolder; @@ -153,6 +154,7 @@ const fetching = ref(true); const ilFilesObserver = new IntersectionObserver( (entries) => entries.some((entry) => entry.isIntersecting) && !fetching.value && moreFiles.value && fetchMoreFiles(), ); +const router = useRouter(); watch(folder, () => emit('cd', folder.value)); @@ -429,9 +431,15 @@ function chooseFolder(folderToChoose: Misskey.entities.DriveFolder) { function move(target?: Misskey.entities.DriveFolder) { if (!target) { goRoot(); + // メインルーターならURLだけ書き換え + if (router === mainRouter) history.pushState({}, '', '/my/drive/'); return; } else if (typeof target === 'object') { target = target.id; + // メインルーターならURLだけ書き換え + if (router === mainRouter) { + history.pushState({}, '', `/my/drive/folder/${target}`); + } } fetching.value = true; @@ -525,6 +533,9 @@ function goRoot() { fetch(); } +// 他のコンポーネントから goRootを使えるようにする +defineExpose({ goRoot }); + async function fetch() { folders.value = []; files.value = []; diff --git a/packages/frontend/src/pages/drive.vue b/packages/frontend/src/pages/drive.vue index 54fb83fc1d..d613264908 100644 --- a/packages/frontend/src/pages/drive.vue +++ b/packages/frontend/src/pages/drive.vue @@ -5,18 +5,30 @@ SPDX-License-Identifier: AGPL-3.0-only