From d25fb283cc906656fbdc573c032b0a8a5b2340d8 Mon Sep 17 00:00:00 2001 From: Matthew Kaminski Date: Thu, 29 Aug 2024 16:28:05 -0400 Subject: [PATCH] Mode templates to folders --- src/main.rs | 8 +-- src/templates/global_state.rs | 66 --------------------- src/templates/mod.rs | 21 ++++--- src/templates/pickleball/mod.rs | 0 src/templates/{ => pool}/add_game_form.rs | 0 src/templates/{ => pool}/index.rs | 0 src/templates/pool/mod.rs | 4 ++ src/templates/{ => pool}/one_v_one_board.rs | 0 src/templates/{ => pool}/overall_board.rs | 0 src/templates/table_tennis/mod.rs | 0 src/templates/user/mod.rs | 0 11 files changed, 22 insertions(+), 77 deletions(-) delete mode 100644 src/templates/global_state.rs create mode 100644 src/templates/pickleball/mod.rs rename src/templates/{ => pool}/add_game_form.rs (100%) rename src/templates/{ => pool}/index.rs (100%) create mode 100644 src/templates/pool/mod.rs rename src/templates/{ => pool}/one_v_one_board.rs (100%) rename src/templates/{ => pool}/overall_board.rs (100%) create mode 100644 src/templates/table_tennis/mod.rs create mode 100644 src/templates/user/mod.rs diff --git a/src/main.rs b/src/main.rs index 4477403..caa410a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,10 +70,10 @@ pub fn main() -> PerseusApp { PerseusApp::new() .global_state_creator(crate::global_state::get_global_state_creator()) - .template(crate::templates::index::get_template()) - .template(crate::templates::add_game_form::get_template()) - .template(crate::templates::one_v_one_board::get_template()) - .template(crate::templates::overall_board::get_template()) + .template(crate::templates::pool::index::get_template()) + .template(crate::templates::pool::add_game_form::get_template()) + .template(crate::templates::pool::one_v_one_board::get_template()) + .template(crate::templates::pool::overall_board::get_template()) .capsule_ref(&*crate::capsules::login_form::LOGIN_FORM) .capsule_ref(&*crate::capsules::forgot_password_form::FORGOT_PASSWORD_FORM) .capsule_ref(&*crate::capsules::register_form::REGISTER_FORM) diff --git a/src/templates/global_state.rs b/src/templates/global_state.rs deleted file mode 100644 index b146152..0000000 --- a/src/templates/global_state.rs +++ /dev/null @@ -1,66 +0,0 @@ -// Not a page, global state that is shared between all pages - -use perseus::{prelude::*, state::GlobalStateCreator}; -use serde::{Deserialize, Serialize}; - -use crate::{ - models::auth::Claims, - state_enums::{LoginState, OpenState}, -}; - -#[derive(Serialize, Deserialize, ReactiveState, Clone)] -#[rx(alias = "AppStateRx")] -pub struct AppState { - #[rx(nested)] - pub auth: AuthData, - #[rx(nested)] - pub modals_open: ModalOpenData, -} - -#[derive(Serialize, Deserialize, ReactiveState, Clone)] -#[rx(alias = "AuthDataRx")] -pub struct AuthData { - pub state: LoginState, - pub username: Option, - pub claims: Claims, -} - -#[derive(Serialize, Deserialize, ReactiveState, Clone)] -#[rx(alias = "ModalOpenDataRx")] -pub struct ModalOpenData { - pub login: OpenState, -} - -pub fn get_global_state_creator() -> GlobalStateCreator { - GlobalStateCreator::new().build_state_fn(get_build_state) -} - -#[engine_only_fn] -pub async fn get_build_state() -> AppState { - AppState { - auth: AuthData { - state: LoginState::Unknown, - username: None, - claims: Claims { - sub: "".to_owned(), - exp: 0, - }, - }, - modals_open: ModalOpenData { - login: OpenState::Closed, - }, - } -} - -// Client only code to check if they're authenticated -#[cfg(client)] -impl AuthDataRx { - pub fn detect_state(&self) { - // If the user is in a known state, return - if let LoginState::Authenticated | LoginState::NotAuthenticated = *self.state.get() { - return; - } - // TODO -> Get state from storage - self.state.set(LoginState::NotAuthenticated); - } -} diff --git a/src/templates/mod.rs b/src/templates/mod.rs index d6460a6..951ffb5 100644 --- a/src/templates/mod.rs +++ b/src/templates/mod.rs @@ -1,14 +1,21 @@ -pub mod add_game_form; -pub mod index; -pub mod one_v_one_board; -pub mod overall_board; +pub mod pickleball; +pub mod pool; +pub mod table_tennis; +pub mod user; #[cfg(client)] use perseus::utils::get_path_prefix_client; #[cfg(client)] pub fn get_api_path(path: &str) -> String { - let origin = web_sys::window().unwrap().origin(); - let base_path = get_path_prefix_client(); - format!("{}{}{}", origin, base_path, path) + #[cfg(engine)] + { + path.to_string() + } + #[cfg(client)] + { + let origin = web_sys::window().unwrap().origin(); + let base_path = get_path_prefix_client(); + format!("{}{}{}", origin, base_path, path) + } } diff --git a/src/templates/pickleball/mod.rs b/src/templates/pickleball/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/templates/add_game_form.rs b/src/templates/pool/add_game_form.rs similarity index 100% rename from src/templates/add_game_form.rs rename to src/templates/pool/add_game_form.rs diff --git a/src/templates/index.rs b/src/templates/pool/index.rs similarity index 100% rename from src/templates/index.rs rename to src/templates/pool/index.rs diff --git a/src/templates/pool/mod.rs b/src/templates/pool/mod.rs new file mode 100644 index 0000000..f6e01b3 --- /dev/null +++ b/src/templates/pool/mod.rs @@ -0,0 +1,4 @@ +pub mod add_game_form; +pub mod index; +pub mod one_v_one_board; +pub mod overall_board; diff --git a/src/templates/one_v_one_board.rs b/src/templates/pool/one_v_one_board.rs similarity index 100% rename from src/templates/one_v_one_board.rs rename to src/templates/pool/one_v_one_board.rs diff --git a/src/templates/overall_board.rs b/src/templates/pool/overall_board.rs similarity index 100% rename from src/templates/overall_board.rs rename to src/templates/pool/overall_board.rs diff --git a/src/templates/table_tennis/mod.rs b/src/templates/table_tennis/mod.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/templates/user/mod.rs b/src/templates/user/mod.rs new file mode 100644 index 0000000..e69de29