From 97a58a344830cde311566141b282405a39b3e68b Mon Sep 17 00:00:00 2001 From: Michael Bauer <michael-bauer@posteo.de> Date: Fri, 19 Apr 2024 19:46:25 +0200 Subject: [PATCH] Introduce day-increment prop & increase days loaded at once --- .../components/coursebook/Coursebook.vue | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue index 50dd14a3c..462848013 100644 --- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue +++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue @@ -102,6 +102,16 @@ export default { required: false, default: null, }, + /** + * Number of consecutive to load at once + * This number of days is initially loaded and loaded + * incrementally while scrolling. + */ + dayIncrement: { + type: Number, + required: false, + default: 7, + }, /** * Margin from coursebook list to top of viewport in pixels */ @@ -190,8 +200,8 @@ export default { const date = DateTime.fromISO(this.currentDate); this.initDate = date; - this.dateStart = date.minus({ days: 3 }).toISODate(); - this.dateEnd = date.plus({ days: 4 }).toISODate(); + this.dateStart = date.minus({ days: this.dayIncrement }).toISODate(); + this.dateEnd = date.plus({ days: this.dayIncrement }).toISODate(); }, transition() { this.initDate = false @@ -274,7 +284,7 @@ export default { if (once && this.ready && first) { console.log('load up', date.toISODate()); this.ready = false; - this.fetchMore(date.minus({ days: 5 }).toISODate(), + this.fetchMore(date.minus({ days: this.dayIncrement }).toISODate(), date.minus({ days: 1 }).toISODate(), () => { this.fixScrollPos(document.documentElement.scrollHeight, @@ -285,7 +295,7 @@ export default { console.log('load down', date.toISODate()); this.ready = false; this.fetchMore(date.plus({ days: 1 }).toISODate(), - date.plus({ days: 5 }).toISODate(), + date.plus({ days: this.dayIncrement }).toISODate(), () => { this.ready = true }); once = false; } -- GitLab