Mode templates to folders
Some checks failed
Build Crate / build (push) Failing after 1m46s

This commit is contained in:
2024-08-29 16:28:05 -04:00
parent 988d0f9807
commit d25fb283cc
11 changed files with 22 additions and 77 deletions

View File

@@ -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<String>,
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);
}
}

View File

@@ -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)
}
}

View File

View File

@@ -0,0 +1,4 @@
pub mod add_game_form;
pub mod index;
pub mod one_v_one_board;
pub mod overall_board;

View File

View File