diff options
Diffstat (limited to 'packages/frontend/src/components/MkChannelList.vue')
| -rw-r--r-- | packages/frontend/src/components/MkChannelList.vue | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkChannelList.vue b/packages/frontend/src/components/MkChannelList.vue new file mode 100644 index 0000000000..408eab7399 --- /dev/null +++ b/packages/frontend/src/components/MkChannelList.vue @@ -0,0 +1,31 @@ +<template> +<MkPagination :pagination="pagination"> + <template #empty> + <div class="_fullinfo"> + <img src="https://xn--931a.moe/assets/info.jpg" class="_ghost"/> + <div>{{ i18n.ts.notFound }}</div> + </div> + </template> + + <template #default="{ items }"> + <MkChannelPreview v-for="item in items" :key="item.id" class="_margin" :channel="extractor(item)"/> + </template> +</MkPagination> +</template> + +<script lang="ts" setup> +import MkChannelPreview from '@/components/MkChannelPreview.vue'; +import MkPagination, { Paging } from '@/components/MkPagination.vue'; +import { i18n } from '@/i18n'; + +const props = withDefaults(defineProps<{ + pagination: Paging; + noGap?: boolean; + extractor?: (item: any) => any; +}>(), { + extractor: (item) => item, +}); +</script> + +<style lang="scss" scoped> +</style> |