Add loading indicator for notifications, make timelines indicate bottoming out when no more statuses

This commit is contained in:
shpuld 2019-01-29 21:04:52 +02:00
parent 3cfbf0141f
commit 62e9525724
9 changed files with 53 additions and 10 deletions

View file

@ -16,7 +16,8 @@ const Timeline = {
data () {
return {
paused: false,
unfocused: false
unfocused: false,
bottomedOut: false
}
},
computed: {
@ -95,7 +96,12 @@ const Timeline = {
showImmediately: true,
userId: this.userId,
tag: this.tag
}).then(() => store.commit('setLoading', { timeline: this.timelineName, value: false }))
}).then(statuses => {
store.commit('setLoading', { timeline: this.timelineName, value: false })
if (statuses.length === 0) {
this.bottomedOut = true
}
})
}, 1000, this),
scrollLoad (e) {
const bodyBRect = document.body.getBoundingClientRect()

View file

@ -20,10 +20,15 @@
</div>
</div>
<div :class="classes.footer">
<a href="#" v-on:click.prevent='fetchOlderStatuses()' v-if="!timeline.loading">
<div v-if="bottomedOut" class="new-status-notification text-center panel-footer faint">
{{$t('timeline.no_more_statuses')}}
</div>
<a v-else-if="!timeline.loading" href="#" v-on:click.prevent='fetchOlderStatuses()'>
<div class="new-status-notification text-center panel-footer">{{$t('timeline.load_older')}}</div>
</a>
<div class="new-status-notification text-center panel-footer" v-else>...</div>
<div v-else class="new-status-notification text-center panel-footer">
<i class="icon-spin3 animate-spin"/>
</div>
</div>
</div>
</template>