From 623bca5e68bd0b9f399b662b9d3a2ab42c48c23e Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Wed, 3 Apr 2024 22:12:19 +0200
Subject: [PATCH] Also set status timeout when lesson has already started but
 is not yet finished

---
 .../documentation/DocumentationStatus.vue     | 21 +++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue
index 5531c1e7e..a797465e9 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/documentation/DocumentationStatus.vue
@@ -112,14 +112,23 @@ export default {
   },
   mounted() {
     this.updateStatus();
-    this.statusTimeout = setTimeout(
-      this.updateStatus,
-      this.documentationDateTimeStart.diff(DateTime.now(), "seconds").toObject()
-        .seconds,
-    );
+
+    if (DateTime.now() < this.documentationDateTimeStart) {
+      this.statusTimeout = setTimeout(
+        this.updateStatus,
+        this.documentationDateTimeStart.diff(DateTime.now(), "seconds").toObject(),
+        );
+    } else if (DateTime.now() < this.documentationDateTimeEnd) {
+      this.statusTimeout = setTimeout(
+        this.updateStatus,
+        this.documentationDateTimeEnd.diff(DateTime.now(), "seconds").toObject(),
+        );
+    }
   },
   beforeDestroy() {
-    clearTimeout(this.statusTimeout);
+    if (this.statusTimeout) {
+      clearTimeout(this.statusTimeout);
+    }
   },
 };
 </script>
-- 
GitLab