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 + } + }) + } } }