From e1ca8d9eb57f81aff87ae876579c7b8faef972fa Mon Sep 17 00:00:00 2001
From: Marc-Antoine Manningham <marc-antoine.m@outlook.com>
Date: Thu, 12 Dec 2024 17:39:47 -0500
Subject: [PATCH] fix: make the ics work each time

---
 aep-schedule-website/Cargo.lock                |  5 +++--
 .../src/frontend/components/schedule.rs        | 18 +++++-------------
 2 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/aep-schedule-website/Cargo.lock b/aep-schedule-website/Cargo.lock
index 3cc6892..1441b96 100644
--- a/aep-schedule-website/Cargo.lock
+++ b/aep-schedule-website/Cargo.lock
@@ -1394,8 +1394,9 @@ dependencies = [
 
 [[package]]
 name = "icalendar"
-version = "0.16.3"
-source = "git+https://github.com/marcantoinem/icalendar-rs?branch=fix/wrapping-behaviour#e640f6ca5f519eb536dbedd787b5843be463622a"
+version = "0.16.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78aa665b8aa17f012f7e6f89e7124e48a83716b9c5600fe318fa22e2a3d7063d"
 dependencies = [
  "chrono",
  "iso8601",
diff --git a/aep-schedule-website/src/frontend/components/schedule.rs b/aep-schedule-website/src/frontend/components/schedule.rs
index 3a5d569..6d505e6 100644
--- a/aep-schedule-website/src/frontend/components/schedule.rs
+++ b/aep-schedule-website/src/frontend/components/schedule.rs
@@ -137,12 +137,12 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Arc<Calendar>) -> impl In
     let courses = schedule.taken_courses.clone();
     let courses2 = schedule.taken_courses.clone();
     let schedule2 = schedule.clone();
-    let (download, set_download) = signal("".to_string());
-    let link = NodeRef::new();
+    let ics = calendar.generate_ics(&schedule2);
+    let url = url_escape::encode_fragment(&ics);
+    let url = "data:text/plain;charset=utf-8,".to_string() + &url;
 
     view! {
         <div class="flex flex-col w-full items-center card p-2">
-            <a class="hidden" download="cours.ics" href=move || download.get() node_ref=link></a>
             <table class="cours">
                 {courses
                     .into_iter()
@@ -158,18 +158,10 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Arc<Calendar>) -> impl In
                     .map(|(i, c)| view! { <CoursePeriods i course=c /> })
                     .collect_view()}
             </Schedule>
-            <button
-                class="button-download flex"
-                on:pointerdown=move |_| {
-                    let ics = calendar.generate_ics(&schedule2);
-                    let url = url_escape::encode_fragment(&ics);
-                    set_download("data:text/plain;charset=utf-8,".to_string() + &url);
-                    link.get().unwrap().click();
-                }
-            >
+            <a class="button-download flex" download="cours.ics" href={url}>
                 <Download weight=IconWeight::Regular size="3vh" />
                 <span>"Télécharger le calendrier de cet horaire"</span>
-            </button>
+            </a>
         </div>
     }
 }
-- 
GitLab