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