<script>
export default {
data () {
return {
page: 1,
// To avoid several calls in same moment
now: null
}
},
mounted () {
this.setNowTime()
if (process.browser) {
window.addEventListener('scroll', this.handleScroll)
}
},
destroyed () {
if (process.browser) {
window.removeEventListener('scroll', this.handleScroll)
}
},
methods: {
handleScroll () {
const listElm = document.querySelector('.all-hours-section')
if (window.scrollY + window.innerHeight >= listElm.scrollHeight) {
if (this.isReadyLoad()) {
this.loadMoreSlots()
this.setNowTime()
}
}
},
setNowTime () {
this.now = new Date().getTime()
},
isReadyLoad () {
return new Date().getTime() - this.now > 1000
},
loadMoreSlots () {
this.page += 1
this.getSlots()
}
}
}
</script>