Initial commit.

This commit is contained in:
Nolan Darilek 2025-03-19 11:32:32 -05:00
commit 936ea3d853
40 changed files with 6851 additions and 0 deletions

13
desktop/Cargo.toml Normal file
View file

@ -0,0 +1,13 @@
[package]
name = "desktop"
version = "0.1.0"
edition = "2021"
[dependencies]
dioxus = { workspace = true, features = ["router"] }
ui = { workspace = true }
[features]
default = []
desktop = ["dioxus/desktop"]
server = ["dioxus/server"]

8
desktop/assets/blog.css Normal file
View file

@ -0,0 +1,8 @@
#blog {
margin-top: 50px;
}
#blog a {
color: #ffffff;
margin-top: 50px;
}

6
desktop/assets/main.css Normal file
View file

@ -0,0 +1,6 @@
body {
background-color: #0f1116;
color: #ffffff;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 20px;
}

56
desktop/src/main.rs Normal file
View file

@ -0,0 +1,56 @@
use dioxus::prelude::*;
use ui::Navbar;
use views::{Blog, Home};
mod views;
#[derive(Debug, Clone, Routable, PartialEq)]
#[rustfmt::skip]
enum Route {
#[layout(DesktopNavbar)]
#[route("/")]
Home {},
#[route("/blog/:id")]
Blog { id: i32 },
}
const MAIN_CSS: Asset = asset!("/assets/main.css");
fn main() {
dioxus::launch(App);
}
#[component]
fn App() -> Element {
// Build cool things ✌️
rsx! {
// Global app resources
document::Link { rel: "stylesheet", href: MAIN_CSS }
Router::<Route> {}
}
}
/// A desktop-specific Router around the shared `Navbar` component
/// which allows us to use the desktop-specific `Route` enum.
#[component]
fn DesktopNavbar() -> Element {
rsx! {
Navbar {
Link {
to: Route::Home {},
"Home"
}
Link {
to: Route::Blog { id: 1 },
"Blog"
}
}
Outlet::<Route> {}
}
}

30
desktop/src/views/blog.rs Normal file
View file

@ -0,0 +1,30 @@
use crate::Route;
use dioxus::prelude::*;
const BLOG_CSS: Asset = asset!("/assets/blog.css");
#[component]
pub fn Blog(id: i32) -> Element {
rsx! {
document::Link { rel: "stylesheet", href: BLOG_CSS}
div {
id: "blog",
// Content
h1 { "This is blog #{id}!" }
p { "In blog #{id}, we show how the Dioxus router works and how URL parameters can be passed as props to our route components." }
// Navigation links
Link {
to: Route::Blog { id: id - 1 },
"Previous"
}
span { " <---> " }
Link {
to: Route::Blog { id: id + 1 },
"Next"
}
}
}
}

10
desktop/src/views/home.rs Normal file
View file

@ -0,0 +1,10 @@
use dioxus::prelude::*;
use ui::{Hero, Echo};
#[component]
pub fn Home() -> Element {
rsx! {
Hero {}
Echo {}
}
}

5
desktop/src/views/mod.rs Normal file
View file

@ -0,0 +1,5 @@
mod home;
pub use home::Home;
mod blog;
pub use blog::Blog;