diff --git a/aep-schedule-website/src/frontend/pages/generator.rs b/aep-schedule-website/src/frontend/pages/generator.rs
index c51087b3fbd5e22998f98aaf12d9947711bb68a5..40094dfe1e8c367fde55e969a451a9a69a976eac 100644
--- a/aep-schedule-website/src/frontend/pages/generator.rs
+++ b/aep-schedule-website/src/frontend/pages/generator.rs
@@ -5,8 +5,6 @@ use crate::frontend::state::action_add_course::ActionAddCourse;
 use crate::frontend::state::OptionState;
 use aep_schedule_generator::data::group_sigle::SigleGroup;
 use leptos::prelude::*;
-#[cfg(feature = "hydrate")]
-use web_sys::Event;
 
 #[derive(Clone, Copy)]
 pub struct SetModal(WriteSignal<Option<SigleGroup>>);
@@ -26,25 +24,24 @@ pub fn GeneratorPage() -> impl IntoView {
     provide_context(SetModal(set_modal));
     provide_context(ActionAddCourse::new(state));
 
-    #[cfg(feature = "hydrate")]
-    let onscroll = move |ev: Event| {
-        use web_sys::wasm_bindgen::JsCast;
-        let target = ev.target().unwrap().dyn_into::<web_sys::Element>().unwrap();
-        let scroll_top = target.scroll_top() as f64;
-        let client_height = target.client_height() as f64;
-        let scroll_height = target.scroll_height() as f64;
-        if (scroll_top + client_height >= scroll_height - 500.0) && state.step.get() == 6 {
-            state.regenerate();
-        }
-    };
     view! {
         <aside class="left-panel" class=("hide-left-panel", hide)>
             <OptionsForms />
         </aside>
-        <section class="right-panel">
-            on:scroll=onscroll
+        <div class="right-panel"
+            on:scroll:target=move |ev| {
+                use web_sys::wasm_bindgen::JsCast;
+                let target = ev.target().dyn_into::<web_sys::Element>().unwrap();
+                let scroll_top = target.scroll_top() as f64;
+                let client_height = target.client_height() as f64;
+                let scroll_height = target.scroll_height() as f64;
+                if (scroll_top + client_height >= scroll_height - 500.0) && state.step.get() == 6 {
+                    state.regenerate();
+                }
+            }
+        >
             <SchedulesComponent />
-        </section>
+        </div>
         <Notifications modal set_modal />
         <button on:pointerdown=move |_| { hide.set(false) } id="go-back">
             <CaretDoubleRight weight=IconWeight::Regular size="3vh" />