From e24dcd0a9069c299a9c6798c53609f299c915c29 Mon Sep 17 00:00:00 2001 From: Lucas Vas Date: Fri, 16 Jan 2026 09:19:07 -0500 Subject: [PATCH 1/2] style: rustfmt run --- src/components/dashboard_button.rs | 17 +++++++---------- src/components/login/provider.rs | 4 +--- src/components/login/student.rs | 4 +--- src/pages/provider_portal.rs | 6 +----- src/pages/test_page.rs | 3 +-- 5 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/components/dashboard_button.rs b/src/components/dashboard_button.rs index 9558824..6bbd8ba 100644 --- a/src/components/dashboard_button.rs +++ b/src/components/dashboard_button.rs @@ -41,19 +41,16 @@ pub fn DashboardButton( diff --git a/src/components/login/provider.rs b/src/components/login/provider.rs index ce1fb6d..56a80ac 100644 --- a/src/components/login/provider.rs +++ b/src/components/login/provider.rs @@ -24,7 +24,5 @@ pub fn ProviderLoginContext() -> impl IntoView { "/providers/callback" ); - view! { - - } + view! { } } diff --git a/src/components/login/student.rs b/src/components/login/student.rs index f3b89df..14becf8 100644 --- a/src/components/login/student.rs +++ b/src/components/login/student.rs @@ -24,7 +24,5 @@ pub fn StudentLoginContext() -> impl IntoView { "/students/callback" ); - view! { - - } + view! { } } diff --git a/src/pages/provider_portal.rs b/src/pages/provider_portal.rs index 8dc2018..3e6a869 100644 --- a/src/pages/provider_portal.rs +++ b/src/pages/provider_portal.rs @@ -20,11 +20,7 @@ pub fn ProviderPortal() -> impl IntoView { }); view! { - +
diff --git a/src/pages/test_page.rs b/src/pages/test_page.rs index 008676f..18b15af 100644 --- a/src/pages/test_page.rs +++ b/src/pages/test_page.rs @@ -33,8 +33,7 @@ pub fn TestPage() -> impl IntoView {

Important Dates

-
-
+
-- 2.54.0 From 0c00c591622a3bdb8db7822c1393967fab34ffb3 Mon Sep 17 00:00:00 2001 From: Lucas Vas Date: Fri, 16 Jan 2026 20:27:01 -0500 Subject: [PATCH 2/2] feat: implement back button for banner This button is intended to bring the user all the way back to the specified dashboard. Another could be created to exit the form, but I don't think that's needed for now. --- Cargo.lock | 218 +++++++++++++++++++++++++++++++++- Cargo.toml | 3 +- src/components/banner.rs | 30 ++++- src/pages/provider_contact.rs | 2 +- src/pages/provider_portal.rs | 2 +- src/pages/scholarship_info.rs | 2 +- 6 files changed, 248 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2bc1c85..963391a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1548,6 +1548,211 @@ dependencies = [ "cc", ] +[[package]] +name = "icondata" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "412c95f764f89aad1a8505aa4273d931b66d5a26d1e6609a37243784a9128ad9" +dependencies = [ + "icondata_ai", + "icondata_bi", + "icondata_bs", + "icondata_cg", + "icondata_ch", + "icondata_core", + "icondata_fa", + "icondata_fi", + "icondata_hi", + "icondata_im", + "icondata_io", + "icondata_lu", + "icondata_mdi", + "icondata_oc", + "icondata_ri", + "icondata_si", + "icondata_tb", + "icondata_ti", + "icondata_vs", + "icondata_wi", +] + +[[package]] +name = "icondata_ai" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "153b31389f611b00f7392c2f79b5bb8332e30a5eee5bffd66fc4fe767c1de59c" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_bi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f178e5643b61ddf06b4b0c68e0fa5674cbd750be9414e5e02e2e3dd740d9924" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_bs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a8a72809ffc53e8a61dd19079693dbc0478b7b27e09ca1c1e81c04e283f485" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_cg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db064a49229a38dd5bae614b194adc5e3ee5351f5c5d9e539cd159bf84a92539" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_ch" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "998079d1d0673fbb1bd3753ef714e5668fb5f595ffa9bc89eb5b01b6b4f75ca5" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c97be924215abd5e630d84e95a47c710138a6559b4c55039f4f33aa897fa859" + +[[package]] +name = "icondata_fa" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0108c409b3c06be1124a377b827922ad6091cb9eb467d521ea1cb3b1c3d7a76" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_fi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0656636c0e5c070e8501667f287e1751ea4bec9945eed3c66ac472511632b9b0" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_hi" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ba6ed6e155898d296fc5d4127eb651b667643368698dd02b1e9383eab3eef" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_im" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e723800b6a6067a40cf311a9135d739412323f03f88e826a20f1249933187aa5" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_io" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7886629becd205d6f035dc084b68d2b9cc5ba8b03714f2c533c921ed98c6525a" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_lu" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25663a6cc5371e9e33c98bab870f4aa2fd68c88853f1467c8fccfaf112782b1" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_mdi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9517acba09219ff7caebd797b2db68f09b3621c6bc848fe9894f2d30e4f6cdb" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_oc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "088863ff0b1dba4a6e8b3fec797be6ed8503c2d44fd47107f7f6da3abcb6cc87" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_ri" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1851b5662f59b888ba24595886a9e6b6f5c11151b3640ee1875810f7544865" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_si" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68943eec8a766d8e5213385610aa47bf0bec5ddb76fdcf819721a05fb5c8f6c5" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_tb" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f08d4ae577034728dc8856d3bdbced6a406aadfd7386e0e24e5efb7be98685" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_ti" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26660305b27c2831c8e701434e55f6fb589c12bdd43e5ec1e2ae270dbeb185e" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_vs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe2547385392ec350a5a7f80c463767b1d7f7a37cf1431cac2754918a4c1b6a9" +dependencies = [ + "icondata_core", +] + +[[package]] +name = "icondata_wi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "352f5a5df000eabb35894cec75048e97a46d738ebdaf1e060670b0cf473a2419" +dependencies = [ + "icondata_core", +] + [[package]] name = "icu_collections" version = "2.1.1" @@ -1902,6 +2107,16 @@ dependencies = [ "walkdir", ] +[[package]] +name = "leptos_icons" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "274959df1a852fc431b03f27d9cd3129fb0f8cca9c8d383e4d668f62543cbec9" +dependencies = [ + "icondata_core", + "leptos", +] + [[package]] name = "leptos_integration_utils" version = "0.8.7" @@ -2810,14 +3025,15 @@ dependencies = [ "base64 0.22.1", "chrono", "console_error_panic_hook", + "icondata", "leptos", "leptos_animate", "leptos_axum", + "leptos_icons", "leptos_meta", "leptos_oidc", "leptos_router", "macros", - "regex", "serde", "serde_dynamo", "tokio", diff --git a/Cargo.toml b/Cargo.toml index 55b2f80..749ffdd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,11 +23,12 @@ uuid = { version = "1.17.0", features = ["serde", "v4", "js"] } leptos_oidc = "0.9.0" base64 = "0.22.1" chrono = "0.4.42" -regex = "1.11.2" leptos_animate = "0.1.9" macros = { path = "./macros" } traits = { path = "./traits" } +icondata = { version = "0.7.0", features = ["font-awesome"] } +leptos_icons = "0.7.1" [features] default = ["ssr"] diff --git a/src/components/banner.rs b/src/components/banner.rs index ac7dce2..8a26ec3 100644 --- a/src/components/banner.rs +++ b/src/components/banner.rs @@ -1,5 +1,6 @@ use leptos::prelude::*; use leptos_router::hooks::use_navigate; +use leptos_icons::Icon; /// # Banner Component /// @@ -23,17 +24,24 @@ pub fn Banner( #[prop(into)] logo: String, /// The route that the navigates user to a page (home page). - #[prop(into, default = String::from("/"))] - path: String, + #[prop(into, optional)] + path: Signal, ) -> impl IntoView { let navigate = use_navigate(); - let on_click = move |_| navigate(&path, Default::default()); + let show_back = Signal::derive(move || !path.get().is_empty()); + + let on_click = move |_| { + let path = path.get(); + if !path.is_empty() { + navigate(&path, Default::default()); + } + }; view! {
-
+
{title.clone()}
+
} diff --git a/src/pages/provider_contact.rs b/src/pages/provider_contact.rs index 1275055..4983a87 100644 --- a/src/pages/provider_contact.rs +++ b/src/pages/provider_contact.rs @@ -148,7 +148,7 @@ pub fn ProviderContactPage() -> impl IntoView { // Display contact form. view! { - + diff --git a/src/pages/provider_portal.rs b/src/pages/provider_portal.rs index 3e6a869..c160455 100644 --- a/src/pages/provider_portal.rs +++ b/src/pages/provider_portal.rs @@ -20,7 +20,7 @@ pub fn ProviderPortal() -> impl IntoView { }); view! { - +
diff --git a/src/pages/scholarship_info.rs b/src/pages/scholarship_info.rs index 4948cd0..d5ce3ee 100644 --- a/src/pages/scholarship_info.rs +++ b/src/pages/scholarship_info.rs @@ -40,7 +40,7 @@ pub fn ScholarshipInfoPage() -> impl IntoView { // Remember that we only want to show the page after we've got authentication information // and if there's data for us to use. view! { - + -- 2.54.0