diff options
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/pages/instance-info.vue | 21 | ||||
| -rw-r--r-- | packages/frontend/src/pages/user/home.vue | 20 |
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) { |