feat: pagination
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
@@ -5,6 +5,7 @@ import { formatSize } from '@/utils/fileHelpers'
|
||||
import FileActionsMenu from '@/components/FileActionsMenu.vue'
|
||||
import FilePreview from '@/components/FilePreview.vue'
|
||||
import FilePreviewPopover from '@/components/viewer/FilePreviewPopover.vue'
|
||||
import FilesLoadMoreSentinel from '@/components/FilesLoadMoreSentinel.vue'
|
||||
|
||||
type PreviewSource = (item: { id: string; meta?: Record<string, unknown> }) => string | Blob | Promise<string | Blob>
|
||||
|
||||
@@ -12,6 +13,8 @@ const props = defineProps<{
|
||||
collections: CollectionObject[]
|
||||
entities: EntityObject[]
|
||||
selectedIds: Set<string>
|
||||
hasMore?: boolean
|
||||
isLoadingMore?: boolean
|
||||
previewSource?: PreviewSource
|
||||
thumbnailSource?: PreviewSource
|
||||
}>()
|
||||
@@ -24,6 +27,7 @@ const emit = defineEmits<{
|
||||
'delete': [item: CollectionObject | EntityObject]
|
||||
'download': [item: CollectionObject | EntityObject]
|
||||
'show-details': [item: CollectionObject | EntityObject]
|
||||
'load-more': []
|
||||
}>()
|
||||
</script>
|
||||
|
||||
@@ -90,6 +94,12 @@ const emit = defineEmits<{
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<FilesLoadMoreSentinel
|
||||
:has-more="!!hasMore"
|
||||
:loading="!!isLoadingMore"
|
||||
@intersect="emit('load-more')"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<style scoped>
|
||||
|
||||
Reference in New Issue
Block a user