From 62d870521e100580ccd3277e99a64a3a08ad8047 Mon Sep 17 00:00:00 2001 From: Emilia Date: Fri, 12 Jan 2024 21:44:10 -0500 Subject: [PATCH] First callback move --- .../callbacks/main_window_callbacks.rs | 15 +++++++++++++ src/components/callbacks/mod.rs | 1 + src/components/main_window.rs | 21 +++++++------------ src/components/mod.rs | 1 + 4 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 src/components/callbacks/main_window_callbacks.rs create mode 100644 src/components/callbacks/mod.rs diff --git a/src/components/callbacks/main_window_callbacks.rs b/src/components/callbacks/main_window_callbacks.rs new file mode 100644 index 0000000..c3af4ea --- /dev/null +++ b/src/components/callbacks/main_window_callbacks.rs @@ -0,0 +1,15 @@ +use yew::prelude::*; +use yewdux::prelude::*; + +use crate::components::states::{CurrentTransfer, MainState}; + +pub fn toggle_in_transfer_hashes_callback( + main_dispatch: &Dispatch, +) -> Callback { + let main_dispatch = main_dispatch.clone(); + Callback::from(move |_| { + main_dispatch.reduce_mut(|state| { + state.preferences.in_transfer_hashes ^= true; + }) + }) +} diff --git a/src/components/callbacks/mod.rs b/src/components/callbacks/mod.rs new file mode 100644 index 0000000..e87e443 --- /dev/null +++ b/src/components/callbacks/mod.rs @@ -0,0 +1 @@ +pub mod main_window_callbacks; diff --git a/src/components/main_window.rs b/src/components/main_window.rs index 55a7970..a70ce90 100644 --- a/src/components/main_window.rs +++ b/src/components/main_window.rs @@ -12,17 +12,19 @@ use web_sys::{ use yew::prelude::*; use yewdux::prelude::*; -use super::new_plate_dialog::NewPlateDialog; -use super::plates::plate_container::PlateContainer; -use super::states::{CurrentTransfer, MainState}; -use super::transfer_menu::{letters_to_num, RegionDisplay, TransferMenu}; -use super::tree::Tree; +use crate::components::new_plate_dialog::NewPlateDialog; +use crate::components::plates::plate_container::PlateContainer; +use crate::components::states::{CurrentTransfer, MainState}; +use crate::components::transfer_menu::{letters_to_num, RegionDisplay, TransferMenu}; +use crate::components::tree::Tree; use crate::data::csv::state_to_csv; use crate::data::plate_instances::PlateInstance; use crate::data::transfer::Transfer; use crate::data::transfer_region::{Region, TransferRegion}; +use crate::components::callbacks::main_window_callbacks; + #[function_component] pub fn MainWindow() -> Html { let (main_state, main_dispatch) = use_store::(); @@ -49,14 +51,7 @@ pub fn MainWindow() -> Html { }); } - let toggle_in_transfer_hashes_callback = { - let main_dispatch = main_dispatch.clone(); - Callback::from(move |_| { - main_dispatch.reduce_mut(|state| { - state.preferences.in_transfer_hashes ^= true; - }) - }) - }; + let toggle_in_transfer_hashes_callback = main_window_callbacks::test(&main_dispatch); let new_plate_dialog_is_open = use_state_eq(|| false); let new_plate_dialog_callback = { diff --git a/src/components/mod.rs b/src/components/mod.rs index ac482b6..41c01e7 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -4,3 +4,4 @@ pub mod plates; pub mod states; pub mod transfer_menu; pub mod tree; +mod callbacks;