mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-14 15:45:43 +02:00
33 lines
964 B
Vue
33 lines
964 B
Vue
<!--
|
|
SPDX-FileCopyrightText: syuilo and misskey-project
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
-->
|
|
|
|
<template>
|
|
<div class="_spacer" style="--MI_SPACER-w: 700px;">
|
|
<div v-if="roles != null && roles.length > 0" class="_gaps_s">
|
|
<MkRolePreview v-for="role in roles" :key="role.id" :role="role" :forModeration="false"/>
|
|
</div>
|
|
<MkLoading v-else-if="loading" />
|
|
<MkResult v-else type="empty" :text="i18n.ts.noRole"/>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { ref } from 'vue';
|
|
import * as Misskey from 'misskey-js';
|
|
import MkRolePreview from '@/components/MkRolePreview.vue';
|
|
import { i18n } from '@/i18n.js';
|
|
import { misskeyApi } from '@/utility/misskey-api.js';
|
|
|
|
const roles = ref<Misskey.entities.Role[] | null>(null);
|
|
const loading = ref(true);
|
|
|
|
misskeyApi('roles/list').then(res => {
|
|
roles.value = res.filter(x => x.target === 'manual').sort((a, b) => b.displayOrder - a.displayOrder);
|
|
}).finally(() => {
|
|
loading.value = false;
|
|
});
|
|
</script>
|
|
|