summaryrefslogtreecommitdiff
path: root/packages/frontend/src/router.definition.ts
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2025-04-07 19:09:11 +0900
committerGitHub <noreply@github.com>2025-04-07 19:09:11 +0900
commit9d3f3264fdd059f47537da48fd125cdd2f4bad1e (patch)
treededbf1433d0e003465b37e805519c5635b135466 /packages/frontend/src/router.definition.ts
parentUpdate CHANGELOG.md (diff)
downloadmisskey-9d3f3264fdd059f47537da48fd125cdd2f4bad1e.tar.gz
misskey-9d3f3264fdd059f47537da48fd125cdd2f4bad1e.tar.bz2
misskey-9d3f3264fdd059f47537da48fd125cdd2f4bad1e.zip
enhance: チャットの閲覧を無効化できるように (#15765)
* enhance: チャットの閲覧を無効化できるように * fix * fix * fix * readonlyの説明を追加 * enhance: チャットが無効な場合はチャット関連の設定も隠すように * fix * refactor: ChatServiceからApiに関するドメイン知識を排除
Diffstat (limited to 'packages/frontend/src/router.definition.ts')
-rw-r--r--packages/frontend/src/router.definition.ts12
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/frontend/src/router.definition.ts b/packages/frontend/src/router.definition.ts
index 23118160e2..d59b160b8b 100644
--- a/packages/frontend/src/router.definition.ts
+++ b/packages/frontend/src/router.definition.ts
@@ -16,6 +16,10 @@ export const page = (loader: AsyncComponentLoader) => defineAsyncComponent({
errorComponent: MkError,
});
+function chatPage(...args: Parameters<typeof page>) {
+ return $i?.policies.chatAvailability !== 'unavailable' ? page(...args) : page(() => import('@/pages/not-found.vue'));
+}
+
export const ROUTE_DEF = [{
path: '/@:username/pages/:pageName(*)',
component: page(() => import('@/pages/page.vue')),
@@ -42,19 +46,19 @@ export const ROUTE_DEF = [{
component: page(() => import('@/pages/clip.vue')),
}, {
path: '/chat',
- component: page(() => import('@/pages/chat/home.vue')),
+ component: chatPage(() => import('@/pages/chat/home.vue')),
loginRequired: true,
}, {
path: '/chat/user/:userId',
- component: page(() => import('@/pages/chat/room.vue')),
+ component: chatPage(() => import('@/pages/chat/room.vue')),
loginRequired: true,
}, {
path: '/chat/room/:roomId',
- component: page(() => import('@/pages/chat/room.vue')),
+ component: chatPage(() => import('@/pages/chat/room.vue')),
loginRequired: true,
}, {
path: '/chat/messages/:messageId',
- component: page(() => import('@/pages/chat/message.vue')),
+ component: chatPage(() => import('@/pages/chat/message.vue')),
loginRequired: true,
}, {
path: '/instance-info/:host',