diff --git a/src/pages/scholarship_info.rs b/src/pages/scholarship_info.rs index df41afd..69130ac 100644 --- a/src/pages/scholarship_info.rs +++ b/src/pages/scholarship_info.rs @@ -361,42 +361,7 @@ fn ScholarshipForm( /// submission fails, this function is not run. #[prop(into)] on_submit: Callback<()> ) -> impl IntoView { - let submit_action = ServerAction::::new(); - - let submit_status = RwSignal::new(SubmitStatus::Idle); - let elements_disabled = Signal::derive(move || { - matches!(submit_action.pending().get(), true) - }); - - Effect::new(move || { - if submit_action.pending().get() { - submit_status.set(SubmitStatus::Sending); - return; - } - - if let Some(result) = submit_action.value().get() { - match result { - Ok(()) => { - submit_status.set(SubmitStatus::Success); - on_submit.run(()); - }, - Err(_err) => submit_status.set(SubmitStatus::Error(())) - } - } - }); - - let comparison_lists = Resource::new( - move || scholarship_id.get().is_some(), - async move |_| { - get_comparisons_categorized().await - } - ); - - Effect::new(move || { - if let Some(Ok(map)) = comparison_lists.get() { - log!("Available categories: {:?}", map.keys()); - } - }); + //#region Form Data Setup let scholarship_info = Resource::new( move || scholarship_id.get(), @@ -428,6 +393,22 @@ fn ScholarshipForm( } }); + //#endregion + //#region Comparison Logic + + let comparison_lists = Resource::new( + move || scholarship_id.get().is_some(), + async move |_| { + get_comparisons_categorized().await + } + ); + + Effect::new(move || { + if let Some(Ok(map)) = comparison_lists.get() { + log!("Available categories: {:?}", map.keys()); + } + }); + let get_comp_category = move |category: &str| { if let Some(Ok(map)) = comparison_lists.get() { map.get(category).unwrap_or(&Vec::new()).clone() @@ -469,6 +450,33 @@ fn ScholarshipForm( let major_ids = Signal::derive(move || get_comp_ids("Majors")); let major_text = Signal::derive(move || get_comp_text("Majors")); + //#endregion + //#region Submission Logic + + let submit_action = ServerAction::::new(); + + let submit_status = RwSignal::new(SubmitStatus::Idle); + let elements_disabled = Signal::derive(move || { + matches!(submit_action.pending().get(), true) + }); + + Effect::new(move || { + if submit_action.pending().get() { + submit_status.set(SubmitStatus::Sending); + return; + } + + if let Some(result) = submit_action.value().get() { + match result { + Ok(()) => { + submit_status.set(SubmitStatus::Success); + on_submit.run(()); + }, + Err(_err) => submit_status.set(SubmitStatus::Error(())) + } + } + }); + let mut toasts = expect_context::(); let on_submit = move |_| { @@ -481,7 +489,7 @@ fn ScholarshipForm( info }); }; - + Effect::new(move || { submit_action.value().get().is_some() .then(|| { @@ -496,6 +504,8 @@ fn ScholarshipForm( }); }); + //#endregion + let create_comps = ServerAction::::new(); view! { @@ -586,25 +596,21 @@ fn ScholarshipForm( label="Will the award be made to the school or the student?" /> - - -