From 2683366e92676abf687c37f4afea4d4d721cb059 Mon Sep 17 00:00:00 2001 From: Ashelyn Rose Date: Fri, 21 Mar 2025 20:12:36 -0600 Subject: Basic leptos setup --- src/components/app.rs | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/mod.rs | 3 +++ 2 files changed, 64 insertions(+) create mode 100644 src/components/app.rs create mode 100644 src/components/mod.rs (limited to 'src/components') diff --git a/src/components/app.rs b/src/components/app.rs new file mode 100644 index 0000000..0a5ed80 --- /dev/null +++ b/src/components/app.rs @@ -0,0 +1,61 @@ +use leptos::prelude::*; +use leptos_meta::{provide_meta_context, MetaTags, Stylesheet, Title}; +use leptos_router::{ + components::{Route, Router, Routes}, + StaticSegment, +}; + +pub fn shell(options: LeptosOptions) -> impl IntoView { + view! { + + + + + + + + + + + + + + } +} + +#[component] +pub fn App() -> impl IntoView { + // Provides context that manages stylesheets, titles, meta tags, etc. + provide_meta_context(); + + view! { + // injects a stylesheet into the document + // id=leptos means cargo-leptos will hot-reload this stylesheet + + + // sets the document title + + + // content for this welcome page + <Router> + <main> + <Routes fallback=|| "Page not found.".into_view()> + <Route path=StaticSegment("") view=HomePage/> + </Routes> + </main> + </Router> + } +} + +/// Renders the home page of your application. +#[island] +fn HomePage() -> impl IntoView { + // Creates a reactive value to update the button + let count = RwSignal::new(0); + let on_click = move |_| *count.write() += 1; + + view! { + <h1>"Welcome to Leptos!"</h1> + <button on:click=on_click>"Click Me: " {count}</button> + } +} diff --git a/src/components/mod.rs b/src/components/mod.rs new file mode 100644 index 0000000..20df27e --- /dev/null +++ b/src/components/mod.rs @@ -0,0 +1,3 @@ +pub mod app; + +pub use app::App; -- cgit 1.4.1