summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/pages/instance-info.vue21
-rw-r--r--packages/frontend/src/pages/user/home.vue20
2 files changed, 20 insertions, 21 deletions
diff --git a/packages/frontend/src/pages/instance-info.vue b/packages/frontend/src/pages/instance-info.vue
index 469b052b61..26b894b50a 100644
--- a/packages/frontend/src/pages/instance-info.vue
+++ b/packages/frontend/src/pages/instance-info.vue
@@ -46,9 +46,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<div class="_buttons">
<MkButton inline :disabled="!instance" danger @click="deleteAllFiles">{{ i18n.ts.deleteAllFiles }}</MkButton>
<MkButton inline :disabled="!instance" danger @click="severAllFollowRelations">{{ i18n.ts.severAllFollowRelations }}</MkButton>
- <MkButton v-if="suspensionState === 'none'" inline :disabled="!instance" danger @click="stopDelivery">{{ i18n.ts._delivery.stop }}</MkButton>
- <MkButton v-if="suspensionState !== 'none'" inline :disabled="!instance" @click="resumeDelivery">{{ i18n.ts._delivery.resume }}</MkButton>
</div>
+ <MkSwitch v-model="isSuspended" :disabled="!instance" @update:modelValue="toggleSuspended">{{ i18n.ts._delivery.stop }}</MkSwitch>
<MkInfo v-if="isBaseBlocked" warn>{{ i18n.ts.blockedByBase }}</MkInfo>
<MkSwitch v-model="isBlocked" :disabled="!meta || !instance || isBaseBlocked" @update:modelValue="toggleBlock">{{ i18n.ts.blockThisInstance }}</MkSwitch>
<MkInfo v-if="isBaseSilenced" warn>{{ i18n.ts.silencedByBase }}</MkInfo>
@@ -206,6 +205,7 @@ 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');
+const isSuspended = ref(false);
const isBlocked = ref(false);
const isSilenced = ref(false);
const isNSFW = ref(false);
@@ -275,6 +275,7 @@ async function fetch(): Promise<void> {
host: props.host,
});
suspensionState.value = instance.value?.suspensionState ?? 'none';
+ isSuspended.value = instance.value?.suspensionState !== 'none';
isBlocked.value = instance.value?.isBlocked ?? false;
isSilenced.value = instance.value?.isSilenced ?? false;
isNSFW.value = instance.value?.isNSFW ?? false;
@@ -316,23 +317,13 @@ async function toggleMediaSilenced(): Promise<void> {
});
}
-async function stopDelivery(): Promise<void> {
+async function toggleSuspended(): Promise<void> {
if (!iAmModerator) return;
if (!instance.value) throw new Error('No instance?');
- suspensionState.value = 'manuallySuspended';
+ suspensionState.value = isSuspended.value ? 'manuallySuspended' : 'none';
await misskeyApi('admin/federation/update-instance', {
host: instance.value.host,
- isSuspended: true,
- });
-}
-
-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', {
- host: instance.value.host,
- isSuspended: false,
+ isSuspended: isSuspended.value,
});
}
diff --git a/packages/frontend/src/pages/user/home.vue b/packages/frontend/src/pages/user/home.vue
index 50b3bf3451..c3150dac95 100644
--- a/packages/frontend/src/pages/user/home.vue
+++ b/packages/frontend/src/pages/user/home.vue
@@ -30,12 +30,15 @@ SPDX-License-Identifier: AGPL-3.0-only
</button>
</div>
</div>
- <div v-if="$i && $i.id != user.id" class="info-badges">
- <span v-if="user.isFollowed">{{ i18n.ts.followsYou }}</span>
- <span v-if="user.isMuted">{{ i18n.ts.muted }}</span>
- <span v-if="user.isRenoteMuted">{{ i18n.ts.renoteMuted }}</span>
- <span v-if="user.isBlocking">{{ i18n.ts.blocked }}</span>
- </div>
+ <ul v-if="$i && $i.id != user.id" class="info-badges">
+ <li v-if="user.isFollowed && user.isFollowing">{{ i18n.ts.mutuals }}</li>
+ <li v-else-if="user.isFollowing">{{ i18n.ts.following }}</li>
+ <li v-else-if="user.isFollowed">{{ i18n.ts.followsYou }}</li>
+ <li v-if="user.isMuted">{{ i18n.ts.muted }}</li>
+ <li v-if="user.isRenoteMuted">{{ i18n.ts.renoteMuted }}</li>
+ <li v-if="user.isBlocking">{{ i18n.ts.blocked }}</li>
+ <li v-if="user.isBlocked && $i.isModerator">{{ i18n.ts.blockingYou }}</li>
+ </ul>
<div class="actions">
<button class="menu _button" @click="menu"><i class="ti ti-dots"></i></button>
<MkFollowButton v-if="$i?.id != user.id" v-model:user="user" :inline="true" :transparent="false" :full="true" class="koudoku"/>
@@ -474,12 +477,17 @@ onUnmounted(() => {
display: flex;
flex-direction: row;
+ padding: 0;
+ margin: 0;
+
> * {
padding: 4px 8px;
color: #fff;
background: rgba(0, 0, 0, 0.7);
font-size: 0.7em;
border-radius: var(--radius-sm);
+ list-style-type: none;
+ margin-left: 0;
}
> :not(:first-child) {