pleroma-fe/src/components/list/list.vue

49 lines
846 B
Vue
Raw Normal View History

<template>
<div
class="list"
role="list"
>
2019-07-05 10:17:44 +03:00
<div
v-for="item in items"
:key="getKey(item)"
class="list-item"
:class="[getClass(item), nonInteractive ? '-non-interactive' : '']"
role="listitem"
2019-07-05 10:17:44 +03:00
>
<slot
name="item"
:item="item"
/>
</div>
2019-07-05 10:17:44 +03:00
<div
v-if="items.length === 0 && !!$slots.empty"
class="list-empty-content faint"
>
<slot name="empty" />
<slot name="load" />
</div>
</div>
</template>
<script>
export default {
props: {
items: {
type: Array,
2026-01-06 16:22:52 +02:00
default: () => [],
},
getKey: {
type: Function,
2026-01-06 16:22:52 +02:00
default: (item) => item.id,
2024-02-29 17:49:56 +02:00
},
getClass: {
type: Function,
2026-01-06 16:22:52 +02:00
default: () => '',
},
nonInteractive: {
type: Boolean,
2026-01-06 16:22:52 +02:00
default: false,
},
},
}
</script>