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"
|
checksum = "be8aed40e4edbf4d3b4431ab260b63fdc40f5780a4766824329ea0f1eefe3c0f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"wasm-bindgen",
|
|
||||||
"web-sys",
|
"web-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -910,29 +909,6 @@ dependencies = [
|
||||||
"web-sys",
|
"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]]
|
[[package]]
|
||||||
name = "dirs"
|
name = "dirs"
|
||||||
version = "4.0.0"
|
version = "4.0.0"
|
||||||
|
|
@ -2724,6 +2700,39 @@ dependencies = [
|
||||||
"uuid",
|
"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]]
|
[[package]]
|
||||||
name = "regex"
|
name = "regex"
|
||||||
version = "1.8.1"
|
version = "1.8.1"
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ authors = ["traxys <quentin@familleboyer.net>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [".", "api", "app", "migration"]
|
members = [".", "api", "gui", "migration", "web"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0.71"
|
anyhow = "1.0.71"
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@
|
||||||
export XDG_DATA_HOME=/build/data
|
export XDG_DATA_HOME=/build/data
|
||||||
mkdir -p $XDG_DATA_HOME
|
mkdir -p $XDG_DATA_HOME
|
||||||
|
|
||||||
cd app
|
cd web
|
||||||
dx build --release
|
dx build --release
|
||||||
|
|
||||||
runHook postBuild
|
runHook postBuild
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
[package]
|
[package]
|
||||||
name = "dioxus_app"
|
name = "regalade_gui"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
|
|
@ -9,7 +9,6 @@ edition = "2021"
|
||||||
ammonia = "3.3.0"
|
ammonia = "3.3.0"
|
||||||
anyhow = "1.0.71"
|
anyhow = "1.0.71"
|
||||||
api = { version = "0.1.0", path = "../api" }
|
api = { version = "0.1.0", path = "../api" }
|
||||||
console_log = { version = "1.0.0", features = ["color"] }
|
|
||||||
dioxus = "0.4.0"
|
dioxus = "0.4.0"
|
||||||
dioxus-router = { version = "0.4.1", features = ["web"] }
|
dioxus-router = { version = "0.4.1", features = ["web"] }
|
||||||
dioxus-web = "0.4.0"
|
dioxus-web = "0.4.0"
|
||||||
|
|
@ -586,18 +586,13 @@ enum Route {
|
||||||
RecipeView {id: i64}
|
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! {
|
cx.render(rsx! {
|
||||||
Router::<Route> {}
|
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