From 96b36cb0e4ee155dc7d9c88faa5032d527fba281 Mon Sep 17 00:00:00 2001
From: marcantoinem <marc-antoine.m@outlook.com>
Date: Sun, 4 Aug 2024 18:26:12 -0400
Subject: [PATCH] fix: Prepare for deployment

---
 aep-schedule-website/src/frontend/app.rs      |  2 +-
 .../components/common/autocomplete.rs         | 10 +++---
 .../components/common/number_input.rs         |  4 +--
 .../src/frontend/components/notifications.rs  |  2 +-
 .../components/options/courses_selector.rs    | 32 +++++++++----------
 .../src/frontend/components/options/form.rs   |  2 +-
 .../src/frontend/components/options/todo.rs   |  2 +-
 .../src/frontend/components/schedule.rs       | 18 +++++------
 .../src/frontend/pages/generator.rs           |  2 +-
 9 files changed, 38 insertions(+), 36 deletions(-)

diff --git a/aep-schedule-website/src/frontend/app.rs b/aep-schedule-website/src/frontend/app.rs
index 8e96a4a..86ecd11 100644
--- a/aep-schedule-website/src/frontend/app.rs
+++ b/aep-schedule-website/src/frontend/app.rs
@@ -43,7 +43,7 @@ pub fn App() -> impl IntoView {
                     </a>
                     <a href="https://git.step.polymtl.ca/Lemark/aep-schedule-generator-rusty" class="sources" target="_blank" ><span class="rounded-md font-medium text-gray-700 text-lg font-sans tracking-tight">"Sources "</span><GitlabLogo weight=IconWeight::Regular size="3vh"/></a>
                 </nav>
-                <div class=("active", is_active) class="hamburger" on:click=move |_| {
+                <div class=("active", is_active) class="hamburger" on:mousedown=move |_| {
                     set_active.update(|active| {
                         *active = !*active;
                     });
diff --git a/aep-schedule-website/src/frontend/components/common/autocomplete.rs b/aep-schedule-website/src/frontend/components/common/autocomplete.rs
index 731eb50..0bdb986 100644
--- a/aep-schedule-website/src/frontend/components/common/autocomplete.rs
+++ b/aep-schedule-website/src/frontend/components/common/autocomplete.rs
@@ -66,12 +66,14 @@ pub fn AutoComplete<F: FnMut(String) + Copy + Clone + 'static>(
         <div class="relative search-container ".to_owned() + &class>
             <input type="text" class="py-2 px-3 block w-full border-gray-200 rounded-lg text-sm focus:border-blue-500 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none text-black" on:input=on_input placeholder=placeholder prop:value=input id=id on:keyup=move |ev| {
                 if ev.key() == "Enter" && !is_hidden.get() {
-                    let input = input.get().trim().to_uppercase();
-                    submit(input);
+                    let course = input.get().trim().to_uppercase();
+                    input.update(|s| s.clear());
+                    set_suggestion_range.set(0..0);
+                    submit(course);
                 }
             }
             />
-            <button class=button_theme on:click=move |_| {
+            <button class=button_theme on:mousedown=move |_| {
                 let input = input.get().trim().to_uppercase();
                 submit(input);
             }>
@@ -81,7 +83,7 @@ pub fn AutoComplete<F: FnMut(String) + Copy + Clone + 'static>(
                 {suggestions.into_iter().enumerate().map(|(i, autocomplete)| view!{
                     <div
                         class=("hidden", move || {!suggestion_range.get().contains(&i)})
-                        on:click=move |_| submit(autocomplete.value.clone())
+                        on:mousedown=move |_| submit(autocomplete.value.clone())
                     >
                         {autocomplete.label}
                     </div>
diff --git a/aep-schedule-website/src/frontend/components/common/number_input.rs b/aep-schedule-website/src/frontend/components/common/number_input.rs
index 5526b85..98b3a1d 100644
--- a/aep-schedule-website/src/frontend/components/common/number_input.rs
+++ b/aep-schedule-website/src/frontend/components/common/number_input.rs
@@ -36,7 +36,7 @@ where
         <div class="flex flex-row gap-8 items-center">
             <p class="text-white font-sans font-medium tracking-tight">{label}</p>
             <div class="relative flex items-center max-w-20">
-                <button on:click=minus type="button" class="bg-gray-100 hover:bg-gray-200 border border-gray-300 rounded-s-lg p-1 h-7 focus:ring-gray-100 focus:ring-2 focus:outline-none">
+                <button on:mousedown=minus type="button" class="bg-gray-100 hover:bg-gray-200 border border-gray-300 rounded-s-lg p-1 h-7 focus:ring-gray-100 focus:ring-2 focus:outline-none">
                     <svg class="w-3 h-3 text-gray-900" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 2">
                         <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h16"/>
                     </svg>
@@ -51,7 +51,7 @@ where
                     max=max
                     prop:value=value
                     required />
-                <button on:click=plus type="button" class="bg-gray-100 hover:bg-gray-200 border border-gray-300 rounded-e-lg p-1 h-7 focus:ring-gray-100 focus:ring-2 focus:outline-none">
+                <button on:mousedown=plus type="button" class="bg-gray-100 hover:bg-gray-200 border border-gray-300 rounded-e-lg p-1 h-7 focus:ring-gray-100 focus:ring-2 focus:outline-none">
                     <svg class="w-3 h-3 text-gray-900" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 18">
                         <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 1v16M1 9h16"/>
                     </svg>
diff --git a/aep-schedule-website/src/frontend/components/notifications.rs b/aep-schedule-website/src/frontend/components/notifications.rs
index 83b322d..20cb7ea 100644
--- a/aep-schedule-website/src/frontend/components/notifications.rs
+++ b/aep-schedule-website/src/frontend/components/notifications.rs
@@ -44,7 +44,7 @@ pub fn Notifications(
     view! {
         <div class=class>
             <div class="notif-body">
-                <div class="close-button" on:click=move |_| {
+                <div class="close-button" on:mousedown=move |_| {
                     set_modal.set(None);
                 }>
                     <X size="2em"></X>
diff --git a/aep-schedule-website/src/frontend/components/options/courses_selector.rs b/aep-schedule-website/src/frontend/components/options/courses_selector.rs
index cb2776c..b3c2ed4 100644
--- a/aep-schedule-website/src/frontend/components/options/courses_selector.rs
+++ b/aep-schedule-website/src/frontend/components/options/courses_selector.rs
@@ -31,7 +31,7 @@ where
     let set_modal = SetModal::from_context();
 
     view! {
-        <div on:click=move |_| {
+        <div on:mousedown=move |_| {
                 open.update(|b| *b = !*b);
                 submit();
             }
@@ -50,18 +50,18 @@ where
                     }
                 }).collect_view()}
             </div>
-            {match group.open {
-                false => Some(view !{
-                    <div on:click=move |ev| {
-                        ev.stop_propagation();
-                        let sigle_group = SigleGroup::new(course_sigle.clone(), group_type, group.number);
-                        set_modal.set(Some(sigle_group));
-                        }>
-                        <BellRinging size="1em"/>
-                    </div>
-                }),
-                true => None,
-            }}
+            //{match group.open {
+            //    false => Some(view !{
+            //        <div on:mousedown=move |ev| {
+            //            ev.stop_propagation();
+            //            let sigle_group = SigleGroup::new(course_sigle.clone(), group_type, group.number);
+            //            set_modal.set(Some(sigle_group));
+            //            }>
+            //            <BellRinging size="1em"/>
+            //        </div>
+            //    }),
+            //    true => None,
+            //}}
         </div>
     }
 }
@@ -166,7 +166,7 @@ where
             <SearchCourse courses=courses.clone() action_courses set_active_tab/>
         </Await>
         <div class="flex w-full flex-wrap">
-            <button class="tab-button chips" class=("tab-selected", move || active_tab.get() == "") id="personal" on:click={
+            <button class="tab-button chips" class=("tab-selected", move || active_tab.get() == "") id="personal" on:mousedown={
                 move |_| set_active_tab.set("".to_string())
             }>
                 <CalendarX weight=IconWeight::Regular size="16px"/>
@@ -180,12 +180,12 @@ where
                     let add_hidden = move || sigle == active_tab.get();
                     let sigle = course.sigle.to_string();
                     view!{
-                        <button class="tab-button chips" class=("tab-selected", add_hidden) id=&sigle on:click={
+                        <button class="tab-button chips" class=("tab-selected", add_hidden) id=&sigle on:mousedown={
                             let sigle = sigle.clone();
                             move |_| set_active_tab.set(sigle.clone())
                         }>
                         {&sigle}
-                        <button class="close" on:click={
+                        <button class="close" on:mousedown={
                             let sigle = sigle.clone();
                             move |_| {
                                 action_courses.value().update(|courses| {
diff --git a/aep-schedule-website/src/frontend/components/options/form.rs b/aep-schedule-website/src/frontend/components/options/form.rs
index 692623a..618b00a 100644
--- a/aep-schedule-website/src/frontend/components/options/form.rs
+++ b/aep-schedule-website/src/frontend/components/options/form.rs
@@ -40,6 +40,6 @@ pub fn OptionsForms() -> impl IntoView {
         <span class="grow"></span>
         <NumberInput value=state.max_nb_conflicts max=127 label="Nombre de période de cours en conflits maximum: " submit/>
         <SelectOptimizations state=state submit/>
-        <button on:click=submit_mobile class="lg:hidden select-none rounded-lg bg-amber-500 py-2 text-xl px-4 w-64 self-center text-center align-middle text-black shadow-md shadow-amber-500/20 transition-all hover:shadow-lg hover:shadow-amber-500/40 focus:opacity-[0.85] focus:shadow-none active:opacity-[0.85] active:shadow-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none">"Générer les horaires"</button>
+        <button on:mousedown=submit_mobile class="lg:hidden select-none rounded-lg bg-amber-500 py-2 text-xl px-4 w-64 self-center text-center align-middle text-black shadow-md shadow-amber-500/20 transition-all hover:shadow-lg hover:shadow-amber-500/40 focus:opacity-[0.85] focus:shadow-none active:opacity-[0.85] active:shadow-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none">"Générer les horaires"</button>
     }
 }
diff --git a/aep-schedule-website/src/frontend/components/options/todo.rs b/aep-schedule-website/src/frontend/components/options/todo.rs
index 4d11b91..e32ad65 100644
--- a/aep-schedule-website/src/frontend/components/options/todo.rs
+++ b/aep-schedule-website/src/frontend/components/options/todo.rs
@@ -86,7 +86,7 @@ pub fn Todo() -> impl IntoView {
                                 </div>
                             </div>
                         </div>
-                        <button on:click=submit class="select-none rounded-lg bg-amber-500 py-1 text-lg font-sans font-semibold px-2 w-64 self-center text-center align-middle text-black shadow-md shadow-amber-500/20 transition-all hover:shadow-lg hover:shadow-amber-500/40 focus:opacity-[0.85] focus:shadow-none active:opacity-[0.85] active:shadow-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none" prop:disabled=disab>"Générer les horaires"</button>
+                        <button on:mousedown=submit class="select-none rounded-lg bg-amber-500 py-1 text-lg font-sans font-semibold px-2 w-64 self-center text-center align-middle text-black shadow-md shadow-amber-500/20 transition-all hover:shadow-lg hover:shadow-amber-500/40 focus:opacity-[0.85] focus:shadow-none active:opacity-[0.85] active:shadow-none disabled:pointer-events-none disabled:opacity-50 disabled:shadow-none" prop:disabled=disab>"Générer les horaires"</button>
                     </div>
                 </div>
             </div>
diff --git a/aep-schedule-website/src/frontend/components/schedule.rs b/aep-schedule-website/src/frontend/components/schedule.rs
index 9ac0044..af3b0d2 100644
--- a/aep-schedule-website/src/frontend/components/schedule.rs
+++ b/aep-schedule-website/src/frontend/components/schedule.rs
@@ -128,15 +128,15 @@ pub fn ScheduleComponent(schedule: Schedule, calendar: Rc<Calendar>) -> impl Int
             <Schedule last_day=schedule.last_day>
                 {schedule.taken_courses.iter().enumerate().map(|(i, c)| view!{<CoursePeriods i course=c />}).collect_view()}
             </Schedule>
-            <button class="button-download flex" on:click=move |_| {
-                let ics = schedule2.generate_ics(&calendar);
-                let url = url_escape::encode_fragment(&ics);
-                set_download("data:text/plain;charset=utf-8,".to_string() + &url);
-                link().unwrap().click();
-            }>
-                <Download weight=IconWeight::Regular size="3vh"/>
-                <span>"Télécharger le calendrier de cet horaire"</span>
-            </button>
+            //<button class="button-download flex" on:mousedown=move |_| {
+            //    let ics = schedule2.generate_ics(&calendar);
+            //    let url = url_escape::encode_fragment(&ics);
+            //    set_download("data:text/plain;charset=utf-8,".to_string() + &url);
+            //    link().unwrap().click();
+            //}>
+            //    <Download weight=IconWeight::Regular size="3vh"/>
+            //    <span>"Télécharger le calendrier de cet horaire"</span>
+            //</button>
         </div>
     }
 }
diff --git a/aep-schedule-website/src/frontend/pages/generator.rs b/aep-schedule-website/src/frontend/pages/generator.rs
index da2b3b1..fdd27fa 100644
--- a/aep-schedule-website/src/frontend/pages/generator.rs
+++ b/aep-schedule-website/src/frontend/pages/generator.rs
@@ -50,6 +50,6 @@ pub fn GeneratorPage() -> impl IntoView {
             <SchedulesComponent/>
         </section>
         <Notifications modal set_modal/>
-        <button on:click=move |_| {state.hide.set(false)} id="go-back"><CaretDoubleRight weight=IconWeight::Regular size="3vh"/></button>
+        <button on:mousedown=move |_| {state.hide.set(false)} id="go-back"><CaretDoubleRight weight=IconWeight::Regular size="3vh"/></button>
     }
 }
-- 
GitLab