cards/client/src/lib.rs

46 lines
1.1 KiB
Rust

use crate::components::websocket::*;
use leptos::prelude::*;
use leptos_meta::*;
use leptos_router::{
components::{Route, Router, Routes},
StaticSegment,
};
use leptos_use::use_media_query;
use thaw::*;
// Modules
mod components;
mod pages;
// Top-Level pages
use crate::pages::home::Home;
/// An app router which renders the homepage and handles 404's
#[component]
pub fn App() -> impl IntoView {
let theme = RwSignal::new(Theme::light());
let prefers_dark = use_media_query("(prefers-color-scheme: dark)");
Effect::new(move |_| {
if prefers_dark() {
theme.set(Theme::dark());
} else {
theme.set(Theme::light());
}
});
provide_context(theme);
provide_meta_context();
view! {
<Websocket />
<ConfigProvider theme>
<main class="min-h-screen">
<Router>
<Routes fallback=|| "Not found.".into_view()>
<Route path=StaticSegment("") view=Home />
</Routes>
</Router>
</main>
</ConfigProvider>
}
}