doordesk-js/doordesk/app/src/lib.rs
2024-01-15 16:58:26 -05:00

60 lines
2 KiB
Rust

use crate::error_template::{AppError, ErrorTemplate};
use leptos::*;
use leptos_meta::*;
use leptos_router::*;
pub mod components;
pub mod error_template;
pub mod routes;
// use crate::routes::{blog::*, home::*, projects::*};
use crate::routes::home::Home;
#[component]
pub fn App() -> impl IntoView {
provide_meta_context();
view! {
<Stylesheet id="leptos" href="/pkg/doordesk.css"/>
<Title text="doordesk"/>
<Router fallback=|| {
let mut outside_errors = Errors::default();
outside_errors.insert_with_default_key(AppError::NotFound);
view! { <ErrorTemplate outside_errors/> }.into_view()
}>
<nav class="sticky top-0 bg-gradient-to-b shadow-lg from-zinc-800 to-zinc-900">
<ul class="container flex items-center p-3">
<li class="mx-1.5 sm:mx-6">"DoorDesk"</li>
<li class="mx-1.5 sm:mx-6">
<A href="" exact=true>
"Home"
</A>
</li>
<li class="mx-1.5 sm:mx-6">
<A href="/blog">"Blog"</A>
</li>
<li class="mx-1.5 sm:mx-6">
<A href="/projects">"Projects"</A>
</li>
<li class="mx-1.5 sm:mx-6">
<a href="https://git.doordesk.net">"Git"</a>
</li>
</ul>
</nav>
<main>
<Routes>
<Route path="" view=Home/>
// <Route path="blog" view=Blog/>
// <Route path="projects" view=Projects/>
</Routes>
</main>
<p class="m-auto w-8 text-center duration-200 hover:rotate-180">
<a href="https://open.spotify.com/playlist/3JRNw9gpt1w5ptsw8uDeYc?si=8f7e4191113f41f9">
":)"
</a>
</p>
<br/>
</Router>
}
}