Make the GUI a library to support multiple platforms
This commit is contained in:
parent
d3f89a8757
commit
0d900024cb
24 changed files with 76 additions and 39 deletions
57
Cargo.lock
generated
57
Cargo.lock
generated
|
|
@ -590,7 +590,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f"
|
||||
dependencies = [
|
||||
"log",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
]
|
||||
|
||||
|
|
@ -910,29 +909,6 @@ dependencies = [
|
|||
"web-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dioxus_app"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ammonia",
|
||||
"anyhow",
|
||||
"api",
|
||||
"console_log",
|
||||
"dioxus",
|
||||
"dioxus-router",
|
||||
"dioxus-web",
|
||||
"gloo-net",
|
||||
"gloo-storage",
|
||||
"gloo-utils",
|
||||
"itertools 0.11.0",
|
||||
"log",
|
||||
"pulldown-cmark",
|
||||
"serde",
|
||||
"urlencoding",
|
||||
"uuid",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dirs"
|
||||
version = "4.0.0"
|
||||
|
|
@ -2724,6 +2700,39 @@ dependencies = [
|
|||
"uuid",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regalade_gui"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"ammonia",
|
||||
"anyhow",
|
||||
"api",
|
||||
"dioxus",
|
||||
"dioxus-router",
|
||||
"dioxus-web",
|
||||
"gloo-net",
|
||||
"gloo-storage",
|
||||
"gloo-utils",
|
||||
"itertools 0.11.0",
|
||||
"log",
|
||||
"pulldown-cmark",
|
||||
"serde",
|
||||
"urlencoding",
|
||||
"uuid",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regalade_web"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"console_log",
|
||||
"dioxus-web",
|
||||
"gloo-utils",
|
||||
"log",
|
||||
"regalade_gui",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex"
|
||||
version = "1.8.1"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ authors = ["traxys <quentin@familleboyer.net>"]
|
|||
edition = "2021"
|
||||
|
||||
[workspace]
|
||||
members = [".", "api", "app", "migration"]
|
||||
members = [".", "api", "gui", "migration", "web"]
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.71"
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
export XDG_DATA_HOME=/build/data
|
||||
mkdir -p $XDG_DATA_HOME
|
||||
|
||||
cd app
|
||||
cd web
|
||||
dx build --release
|
||||
|
||||
runHook postBuild
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[package]
|
||||
name = "dioxus_app"
|
||||
name = "regalade_gui"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
|
|
@ -9,7 +9,6 @@ edition = "2021"
|
|||
ammonia = "3.3.0"
|
||||
anyhow = "1.0.71"
|
||||
api = { version = "0.1.0", path = "../api" }
|
||||
console_log = { version = "1.0.0", features = ["color"] }
|
||||
dioxus = "0.4.0"
|
||||
dioxus-router = { version = "0.4.1", features = ["web"] }
|
||||
dioxus-web = "0.4.0"
|
||||
|
|
@ -586,18 +586,13 @@ enum Route {
|
|||
RecipeView {id: i64}
|
||||
}
|
||||
|
||||
fn App(cx: Scope) -> Element {
|
||||
pub trait AppContext {}
|
||||
|
||||
pub struct AppProps<'a, C> {
|
||||
pub context: &'a C,
|
||||
}
|
||||
pub fn App<'a, C: AppContext>(cx: Scope<'a, AppProps<'a, C>>) -> Element {
|
||||
cx.render(rsx! {
|
||||
Router::<Route> {}
|
||||
})
|
||||
}
|
||||
|
||||
fn main() {
|
||||
console_log::init_with_level(log::Level::Info).unwrap();
|
||||
|
||||
let html = gloo_utils::document_element();
|
||||
html.set_attribute("data-bs-theme", "dark")
|
||||
.expect("could not set dark theme");
|
||||
|
||||
dioxus_web::launch(App)
|
||||
}
|
||||
13
web/Cargo.toml
Normal file
13
web/Cargo.toml
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
[package]
|
||||
name = "regalade_web"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
console_log = "1.0.0"
|
||||
dioxus-web = "0.4.0"
|
||||
gloo-utils = "0.1.7"
|
||||
log = "0.4.19"
|
||||
regalade_gui = { path = "../gui" }
|
||||
21
web/src/main.rs
Normal file
21
web/src/main.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
use regalade_gui::{App, AppContext, AppProps};
|
||||
|
||||
struct WebApp {}
|
||||
|
||||
impl AppContext for WebApp {}
|
||||
|
||||
fn main() {
|
||||
console_log::init_with_level(log::Level::Info).unwrap();
|
||||
|
||||
let html = gloo_utils::document_element();
|
||||
html.set_attribute("data-bs-theme", "dark")
|
||||
.expect("could not set dark theme");
|
||||
|
||||
dioxus_web::launch_with_props(
|
||||
App,
|
||||
AppProps {
|
||||
context: &WebApp {},
|
||||
},
|
||||
dioxus_web::Config::new(),
|
||||
)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue