From 7d8a453ea907acf79beb5bdf43432a35ed52fd10 Mon Sep 17 00:00:00 2001 From: Austin <pixelrazor@gmail.com> Date: Mon, 20 Mar 2023 00:40:29 +0000 Subject: [PATCH] Refactor --- app/index.html | 5 +++++ app/index_local.html | 5 +++++ app/src/components/app.rs | 17 +++++++++++++++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/app/index.html b/app/index.html index fd3c830..d99c083 100644 --- a/app/index.html +++ b/app/index.html @@ -34,6 +34,11 @@ <link rel="stylesheet" href="/static/style.css" /> + <script> + function inDarkMode(){ + return darkmode.inDarkMode; + } + </script> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> diff --git a/app/index_local.html b/app/index_local.html index e6c59eb..59f0955 100644 --- a/app/index_local.html +++ b/app/index_local.html @@ -31,6 +31,11 @@ <link rel="stylesheet" href="/static/style.css" /> + <script> + function inDarkMode(){ + return darkmode.inDarkMode; + } + </script> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> diff --git a/app/src/components/app.rs b/app/src/components/app.rs index 0de9bb4..848c7a3 100644 --- a/app/src/components/app.rs +++ b/app/src/components/app.rs @@ -34,6 +34,19 @@ use wasm_bindgen::prelude::*; extern "C" { #[wasm_bindgen(js_namespace = darkmode)] fn toggleDarkMode(doSave: bool); + + #[wasm_bindgen] + fn inDarkMode() -> bool; +} + +#[function_component(DarkModeToggle)] +pub fn dark_mode_toggle() -> Html { + html! { + <div class="form-check form-switch"> + <input class="form-check-input" onclick={|_| toggleDarkMode(true)} type="checkbox" id="darkModeToggle" checked={inDarkMode()}/> + <label class="form-check-label" for="darkModeToggle">{"Dark mode"}</label> + </div> + } } #[function_component(AppContainer)] @@ -289,7 +302,6 @@ impl App { if let Some((user_id, _)) = &self.user_info { html! { <div class="dropdown text-end"> - <input class="form-check-input" onclick={Callback::from(move |_| toggleDarkMode(true))} type="checkbox" id="darkModeToggle"/> <a href="#" class="d-block text-body text-decoration-none dropdown-toggle" id="dropdownUser" @@ -328,6 +340,7 @@ impl App { } } else { html!{} } } + <DarkModeToggle /> </div> </div> </header> @@ -336,7 +349,7 @@ impl App { fn view_footer(&self) -> Html { html! { - <footer class="text-center text-muted fixed-bottom bg-light py-2"> + <footer class="text-center fixed-bottom bg-light py-2"> <div> <span>{format!("LLDAP version {}", env!("CARGO_PKG_VERSION"))}</span> </div>