summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkChannelList.vue
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/components/MkChannelList.vue')
-rw-r--r--packages/frontend/src/components/MkChannelList.vue31
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>