diff options
| author | lambda <pleromagit@rogerbraun.net> | 2019-01-30 17:49:27 +0000 |
|---|---|---|
| committer | lambda <pleromagit@rogerbraun.net> | 2019-01-30 17:49:27 +0000 |
| commit | 1717e700469cb6331e2905c7af0d384cf78a1188 (patch) | |
| tree | 8bb0b6f4fa6c8b81c697abc3fb707e4750f66004 /src/components | |
| parent | 0bd77149a06bcd7e0a904d0f5c2e2691996ff898 (diff) | |
| parent | 7666d50d8a9eb2ef8b5a61a1689b7358ae7d93ea (diff) | |
Merge branch 'feat/dont-show-load-more-when-bottomed-out' into 'develop'
fix #292 dont show "load more" when bottomed out
Closes #292
See merge request pleroma/pleroma-fe!496
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/notifications/notifications.js | 14 | ||||
| -rw-r--r-- | src/components/notifications/notifications.vue | 9 | ||||
| -rw-r--r-- | src/components/timeline/timeline.js | 10 | ||||
| -rw-r--r-- | src/components/timeline/timeline.vue | 9 |
4 files changed, 36 insertions, 6 deletions
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js index ea32bbd0..5e95631a 100644 --- a/src/components/notifications/notifications.js +++ b/src/components/notifications/notifications.js @@ -13,6 +13,11 @@ const Notifications = { notificationsFetcher.startFetching({ store, credentials }) }, + data () { + return { + bottomedOut: false + } + }, computed: { notifications () { return notificationsFromStore(this.$store) @@ -28,6 +33,9 @@ const Notifications = { }, unseenCount () { return this.unseenNotifications.length + }, + loading () { + return this.$store.state.statuses.notifications.loading } }, components: { @@ -49,10 +57,16 @@ const Notifications = { fetchOlderNotifications () { const store = this.$store const credentials = store.state.users.currentUser.credentials + store.commit('setNotificationsLoading', { value: true }) notificationsFetcher.fetchAndUpdate({ store, credentials, older: true + }).then(notifs => { + store.commit('setNotificationsLoading', { value: false }) + if (notifs.length === 0) { + this.bottomedOut = true + } }) } } diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue index 64f18720..6f162b62 100644 --- a/src/components/notifications/notifications.vue +++ b/src/components/notifications/notifications.vue @@ -18,10 +18,15 @@ </div> </div> <div class="panel-footer"> - <a href="#" v-on:click.prevent='fetchOlderNotifications()' v-if="!notifications.loading"> + <div v-if="bottomedOut" class="new-status-notification text-center panel-footer faint"> + {{$t('notifications.no_more_notifications')}} + </div> + <a v-else-if="!loading" href="#" v-on:click.prevent="fetchOlderNotifications()"> <div class="new-status-notification text-center panel-footer">{{$t('notifications.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> </div> diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index 98da8660..85e0a055 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -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() diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue index 6ba598c5..e3eea3bd 100644 --- a/src/components/timeline/timeline.vue +++ b/src/components/timeline/timeline.vue @@ -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> |
