Skip to content
Snippets Groups Projects
Commit bb903b61 authored by permcu's avatar permcu
Browse files

Start with fetchMore

parent acdc172b
No related branches found
No related tags found
2 merge requests!355Implement infinite scrolling and by date navigation for coursebook,!350Resolve "Add simple course book list"
......@@ -293,20 +293,27 @@ export default {
assureDate(date) {
if (!this.knownDates[date]) {
// find missing & fetch missing range
// date +- 5 days ?
const dateRange = Interval
.fromDateTimes(date.minus({ days: 3 }), date.plus({ days: 4 }))
.splitBy({ days: 1 })
.map((ts) => ts.start);
console.log('assureDate', dateRange.map((ts) => ts.toISODate()));
// look up in docsByDay
console.log('missing', dateRange.map((ts) => this.docsByDay[ts] ));
console.log('missing', dateRange.filter((ts) => !this.docsByDay[ts] ));
// dateRange.forEach((ts) => { this.docsByDay[ts.toISODate()] = 42 });
console.log('docsByDay', this.docsByDay);
console.log('2024-03-29', this.docsByDay[DateTime.fromISO('2024-03-29')]);
console.log('2024-03-29', dateRange[3], this.docsByDay[dateRange[3]]);
// sort missing and ask for first to last
const missing = this.dateRange(date).filter((ts) => !this.docsByDay[ts] );
// ask for first to last
this.lastQuery.fetchMore({
variables: {
dateStart: missing[0].toISODate(),
dateEnd: missing[missing.length - 1].toISODate(),
},
// Transform the previous result with new data
updateQuery: (previousResult, { fetchMoreResult }) => {
return {
tagsPage: {
__typename: previousResult.tagsPage.__typename,
// Merging the tag list
tags: [...previousResult.tagsPage.tags, ...newTags],
hasMore,
},
}
},
})
// integrate into docsByDay
}
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment