add infinite loading to album view

This commit is contained in:
Thomas Amland
2020-09-20 17:33:21 +02:00
parent 6c290689c4
commit 4be81d0e35
6 changed files with 83 additions and 16 deletions
+52
View File
@@ -0,0 +1,52 @@
<template>
<infinite-loading ref="inf" force-use-infinite-wrapper @infinite="loadMore">
<template slot="spinner">
<div class="d-flex justify-content-center my-4">
<span class="spinner-border" />
</div>
</template>
<template slot="no-more">
<span />
</template>
<template slot="no-results">
<span />
</template>
</infinite-loading>
</template>
<script lang="ts">
import Vue from 'vue'
import InfiniteLoading from 'vue-infinite-loading'
export default Vue.extend({
components: {
InfiniteLoading,
},
props: {
loading: { type: Boolean, required: true },
hasMore: { type: Boolean, required: true },
},
watch: {
loading: {
handler(value: boolean) {
if (!this.hasMore) {
(this.$refs.inf as any).stateChanger.complete()
} else if (!value) {
(this.$refs.inf as any).stateChanger.loaded()
}
}
},
hasMore: {
handler(value: boolean) {
if (!value) {
(this.$refs.inf as any).stateChanger.complete()
}
}
}
},
methods: {
loadMore() {
this.$emit('loadMore')
},
}
})
</script>
+2
View File
@@ -2,6 +2,7 @@ import Vue from 'vue'
import ContentLoader from './ContentLoader.vue'
import ExternalLink from './ExternalLink.vue'
import Icon from './Icon.vue'
import InfiniteLoader from './InfiniteLoader.vue'
import OverflowMenu from './OverflowMenu.vue'
import Tiles from './Tiles.vue'
import Tile from './Tile.vue'
@@ -10,6 +11,7 @@ const components = {
ContentLoader,
ExternalLink,
Icon,
InfiniteLoader,
OverflowMenu,
Tiles,
Tile,