diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue
index 4ff26197d8..93debf4aba 100644
--- a/packages/frontend/src/pages/instance-info.vue
+++ b/packages/frontend/src/pages/instance-info.vue
@@ -123,6 +123,36 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
@@ -185,6 +215,24 @@ const usersPagination = {
offsetMode: true,
};
+const followingPagination = {
+ endpoint: 'federation/following' as const,
+ limit: 10,
+ params: {
+ host: props.host,
+ },
+ offsetMode: false,
+};
+
+const followersPagination = {
+ endpoint: 'federation/followers' as const,
+ limit: 10,
+ params: {
+ host: props.host,
+ },
+ offsetMode: false,
+};
+
watch(moderationNote, async () => {
await misskeyApi('admin/federation/update-instance', { host: instance.value.host, moderationNote: moderationNote.value });
});
@@ -292,6 +340,14 @@ const headerTabs = computed(() => [{
key: 'users',
title: i18n.ts.users,
icon: 'ti ti-users',
+}, {
+ key: 'following',
+ title: i18n.ts.following,
+ icon: 'ti ti-arrow-right',
+}, {
+ key: 'followers',
+ title: i18n.ts.followers,
+ icon: 'ti ti-arrow-left',
}, {
key: 'raw',
title: 'Raw',
@@ -334,4 +390,31 @@ definePageMetadata(() => ({
}
}
}
+
+.follow-relations-list {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+
+ .follow-relation {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ flex-wrap: nowrap;
+ justify-content: space-between;
+
+ .user {
+ flex: 1;
+ max-width: 45%;
+ flex-shrink: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .arrow {
+ font-size: 1.5em;
+ flex-shrink: 0;
+ }
+ }
+}