diff options
Diffstat (limited to 'packages/client/src/components/MkUserList.vue')
| -rw-r--r-- | packages/client/src/components/MkUserList.vue | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/client/src/components/MkUserList.vue b/packages/client/src/components/MkUserList.vue new file mode 100644 index 0000000000..d8e28e17db --- /dev/null +++ b/packages/client/src/components/MkUserList.vue @@ -0,0 +1,39 @@ +<template> +<MkPagination ref="pagingComponent" :pagination="pagination"> + <template #empty> + <div class="_fullinfo"> + <img src="https://xn--931a.moe/assets/info.jpg" class="_ghost"/> + <div>{{ i18n.ts.noUsers }}</div> + </div> + </template> + + <template #default="{ items: users }"> + <div class="efvhhmdq"> + <MkUserInfo v-for="user in users" :key="user.id" class="user" :user="user"/> + </div> + </template> +</MkPagination> +</template> + +<script lang="ts" setup> +import { ref } from 'vue'; +import MkUserInfo from '@/components/MkUserInfo.vue'; +import MkPagination, { Paging } from '@/components/ui/pagination.vue'; +import { userPage } from '@/filters/user'; +import { i18n } from '@/i18n'; + +const props = defineProps<{ + pagination: Paging; + noGap?: boolean; +}>(); + +const pagingComponent = ref<InstanceType<typeof MkPagination>>(); +</script> + +<style lang="scss" scoped> +.efvhhmdq { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); + grid-gap: var(--margin); +} +</style> |