fix(frontend): instance infoページで不必要なapiリクエストが飛ぶのを抑止 (#14515)
* fix(frontend): instance infoページで不必要なapiリクエストが飛ぶのを抑止 * fix
This commit is contained in:
		@@ -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,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user