From 69dfe87140257a2cd0797f3f1c295befbb2bb427 Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Fri, 30 Jul 2021 18:22:42 +0200 Subject: [PATCH] feat(frontend): adds infinite loading to stream activity page --- packages/frontend/src/views/Timeline.vue | 16 ++-------- .../frontend/src/views/stream/Activity.vue | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/packages/frontend/src/views/Timeline.vue b/packages/frontend/src/views/Timeline.vue index d8e264ce0..03230c985 100644 --- a/packages/frontend/src/views/Timeline.vue +++ b/packages/frontend/src/views/Timeline.vue @@ -195,19 +195,9 @@ export default { if (newItems.length === 0) $state.complete() else $state.loaded() - return { - user: { - __typename: previousResult.user.__typename, - id: previousResult.user.id, - timeline: { - __typename: previousResult.user.timeline.__typename, - totalCount: fetchMoreResult.user.timeline.totalCount, - cursor: fetchMoreResult.user.timeline.cursor, - // Merging the new timeline - items: [...previousResult.user.timeline.items, ...newItems] - } - } - } + fetchMoreResult.user.timeline.items = [...previousResult.user.timeline.items, ...newItems] + + return fetchMoreResult } }) } diff --git a/packages/frontend/src/views/stream/Activity.vue b/packages/frontend/src/views/stream/Activity.vue index 90ee18452..bbb352004 100644 --- a/packages/frontend/src/views/stream/Activity.vue +++ b/packages/frontend/src/views/stream/Activity.vue @@ -12,6 +12,13 @@ :activity="activity" class="my-1" > + +
This is all your activity!
+
There are no ctivities to load
+
@@ -69,6 +76,30 @@ export default { } } } + }, + methods: { + infiniteHandler($state) { + this.$apollo.queries.stream.fetchMore({ + variables: { + before: this.stream.activity.cursor + }, + // Transform the previous result with new data + updateQuery: (previousResult, { fetchMoreResult }) => { + const newItems = fetchMoreResult.stream.activity.items + + //set vue-infinite state + if (newItems.length === 0) $state.complete() + else $state.loaded() + + fetchMoreResult.stream.activity.items = [ + ...previousResult.stream.activity.items, + ...newItems + ] + + return fetchMoreResult + } + }) + } } }