summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages/instance-info.vue
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2024-09-06 17:23:40 +0900
committerGitHub <noreply@github.com>2024-09-06 17:23:40 +0900
commit567acea2a3a040dbde69748deb2112e3ff2b92b8 (patch)
tree1edc2bfd473e25038c6188da6e428ffc001a5f47 /packages/frontend/src/pages/instance-info.vue
parentfix(misskey-js): content-typeはapplication/jsonでないもののみを記... (diff)
downloadmisskey-567acea2a3a040dbde69748deb2112e3ff2b92b8.tar.gz
misskey-567acea2a3a040dbde69748deb2112e3ff2b92b8.tar.bz2
misskey-567acea2a3a040dbde69748deb2112e3ff2b92b8.zip
fix(frontend): instance infoページで不必要なapiリクエストが飛ぶのを抑止 (#14515)
* fix(frontend): instance infoページで不必要なapiリクエストが飛ぶのを抑止 * fix
Diffstat (limited to 'packages/frontend/src/pages/instance-info.vue')
-rw-r--r--packages/frontend/src/pages/instance-info.vue25
1 files changed, 17 insertions, 8 deletions
diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue
index 4ba428d536..c69530b343 100644
--- a/packages/frontend/src/pages/instance-info.vue
+++ b/packages/frontend/src/pages/instance-info.vue
@@ -134,7 +134,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<script lang="ts" setup>
import { ref, computed, watch } from 'vue';
import * as Misskey from 'misskey-js';
-import MkChart from '@/components/MkChart.vue';
+import MkChart, { type ChartSrc } from '@/components/MkChart.vue';
import MkObjectView from '@/components/MkObjectView.vue';
import FormLink from '@/components/form/link.vue';
import MkLink from '@/components/MkLink.vue';
@@ -150,7 +150,7 @@ import { iAmModerator, iAmAdmin } from '@/account.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
import { i18n } from '@/i18n.js';
import MkUserCardMini from '@/components/MkUserCardMini.vue';
-import MkPagination from '@/components/MkPagination.vue';
+import MkPagination, { type Paging } from '@/components/MkPagination.vue';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
import { getProxiedImageUrlNullable } from '@/scripts/media-proxy.js';
import { dateString } from '@/filters/date.js';
@@ -162,7 +162,7 @@ const props = defineProps<{
const tab = ref('overview');
-const chartSrc = ref('instance-requests');
+const chartSrc = ref<ChartSrc>('instance-requests');
const meta = ref<Misskey.entities.AdminMetaResponse | null>(null);
const instance = ref<Misskey.entities.FederationInstance | null>(null);
const suspensionState = ref<'none' | 'manuallySuspended' | 'goneSuspended' | 'autoSuspendedForNotResponding'>('none');
@@ -173,7 +173,7 @@ const faviconUrl = ref<string | null>(null);
const moderationNote = ref('');
const usersPagination = {
- endpoint: iAmModerator ? 'admin/show-users' : 'users' as const,
+ endpoint: iAmModerator ? 'admin/show-users' : 'users',
limit: 10,
params: {
sort: '+updatedAt',
@@ -181,11 +181,14 @@ const usersPagination = {
hostname: props.host,
},
offsetMode: true,
-};
+} satisfies Paging;
-watch(moderationNote, async () => {
- await misskeyApi('admin/federation/update-instance', { host: instance.value.host, moderationNote: moderationNote.value });
-});
+if (iAmModerator) {
+ watch(moderationNote, async () => {
+ if (instance.value == null) return;
+ await misskeyApi('admin/federation/update-instance', { host: instance.value.host, moderationNote: moderationNote.value });
+ });
+}
async function fetch(): Promise<void> {
if (iAmAdmin) {
@@ -203,6 +206,7 @@ async function fetch(): Promise<void> {
}
async function toggleBlock(): Promise<void> {
+ if (!iAmAdmin) return;
if (!meta.value) throw new Error('No meta?');
if (!instance.value) throw new Error('No instance?');
const { host } = instance.value;
@@ -212,6 +216,7 @@ async function toggleBlock(): Promise<void> {
}
async function toggleSilenced(): Promise<void> {
+ if (!iAmAdmin) return;
if (!meta.value) throw new Error('No meta?');
if (!instance.value) throw new Error('No instance?');
const { host } = instance.value;
@@ -222,6 +227,7 @@ async function toggleSilenced(): Promise<void> {
}
async function toggleMediaSilenced(): Promise<void> {
+ if (!iAmAdmin) return;
if (!meta.value) throw new Error('No meta?');
if (!instance.value) throw new Error('No instance?');
const { host } = instance.value;
@@ -232,6 +238,7 @@ async function toggleMediaSilenced(): Promise<void> {
}
async function stopDelivery(): Promise<void> {
+ if (!iAmModerator) return;
if (!instance.value) throw new Error('No instance?');
suspensionState.value = 'manuallySuspended';
await misskeyApi('admin/federation/update-instance', {
@@ -241,6 +248,7 @@ async function stopDelivery(): Promise<void> {
}
async function resumeDelivery(): Promise<void> {
+ if (!iAmModerator) return;
if (!instance.value) throw new Error('No instance?');
suspensionState.value = 'none';
await misskeyApi('admin/federation/update-instance', {
@@ -250,6 +258,7 @@ async function resumeDelivery(): Promise<void> {
}
function refreshMetadata(): void {
+ if (!iAmModerator) return;
if (!instance.value) throw new Error('No instance?');
misskeyApi('admin/federation/refresh-remote-instance-metadata', {
host: instance.value.host,