wip: Makefile setup
This commit is contained in:
1 parent
e02dfc3324
commit
d7968c987f
4 files changed
+148
-28
No files matched your search
+28
-28
@@ -1,51 +1,51 @@
|
||||
[package]
|
||||
name = "dioxus-router"
|
||||
version = "0.1.1"
|
||||
edition = "2018"
|
||||
description = "Dioxus VirtualDOM renderer for the web browser using websys"
|
||||
license = "MIT/Apache-2.0"
|
||||
repository = "https://github.com/DioxusLabs/dioxus/"
|
||||
homepage = "https://dioxuslabs.com"
|
||||
documentation = "https://dioxuslabs.com"
|
||||
edition = "2018"
|
||||
homepage = "https://dioxuslabs.com"
|
||||
keywords = ["dom", "ui", "gui", "react", "wasm"]
|
||||
license = "MIT/Apache-2.0"
|
||||
name = "dioxus-router"
|
||||
repository = "https://github.com/DioxusLabs/dioxus/"
|
||||
version = "0.1.1"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
dioxus-core = { path = "../core", version = "^0.1.9", default-features = false }
|
||||
dioxus-html = { path = "../html", version = "^0.1.6", default-features = false }
|
||||
dioxus-core-macro = { path = "../core-macro", version = "^0.1.7" }
|
||||
dioxus-core = {path = "../core", version = "^0.1.9", default-features = false}
|
||||
dioxus-core-macro = {path = "../core-macro", version = "^0.1.7"}
|
||||
dioxus-html = {path = "../html", version = "^0.1.6", default-features = false}
|
||||
|
||||
serde = "1"
|
||||
url = "2.2.2"
|
||||
serde_urlencoded = "0.7"
|
||||
url = "2.2.2"
|
||||
|
||||
# for wasm
|
||||
web-sys = { version = "0.3", features = [
|
||||
"Attr",
|
||||
"Document",
|
||||
"History",
|
||||
"HtmlBaseElement",
|
||||
"Event",
|
||||
"NamedNodeMap",
|
||||
"Url",
|
||||
"UrlSearchParams",
|
||||
"Window",
|
||||
], optional = true }
|
||||
wasm-bindgen = { version = "0.2", optional = true }
|
||||
js-sys = { version = "0.3", optional = true }
|
||||
gloo = { version = "0.5", optional = true }
|
||||
gloo = {version = "0.5", optional = true}
|
||||
js-sys = {version = "0.3", optional = true}
|
||||
log = "0.4.14"
|
||||
|
||||
wasm-bindgen = {version = "0.2", optional = true}
|
||||
web-sys = {version = "0.3", features = [
|
||||
"Attr",
|
||||
"Document",
|
||||
"History",
|
||||
"HtmlBaseElement",
|
||||
"Event",
|
||||
"NamedNodeMap",
|
||||
"Url",
|
||||
"UrlSearchParams",
|
||||
"Window",
|
||||
], optional = true}
|
||||
|
||||
[features]
|
||||
default = ["derive", "web"]
|
||||
web = ["web-sys", "gloo", "js-sys", "wasm-bindgen"]
|
||||
derive = []
|
||||
desktop = []
|
||||
mobile = []
|
||||
derive = []
|
||||
web = ["web-sys", "gloo", "js-sys", "wasm-bindgen"]
|
||||
|
||||
[dev-dependencies]
|
||||
console_error_panic_hook = "0.1.7"
|
||||
dioxus-web = { path = "../web" }
|
||||
dioxus-web = {path = "../web"}
|
||||
log = "0.4.14"
|
||||
wasm-bindgen-test = "0.3"
|
||||
wasm-logger = "0.2.0"
|
||||
@@ -0,0 +1,10 @@
|
||||
[tasks.test]
|
||||
args = [
|
||||
"test",
|
||||
"@@split(DIOXUS_TEST_FLAGS, )",
|
||||
"--",
|
||||
"--features",
|
||||
"${DIOXUS_TEST_FEATURES}",
|
||||
]
|
||||
command = "wasm-pack"
|
||||
extend = "core::wasm-pack-base"
|
||||
@@ -0,0 +1,68 @@
|
||||
#![cfg(target_arch = "wasm32")]
|
||||
|
||||
use dioxus_core::prelude::*;
|
||||
use dioxus_core_macro::*;
|
||||
use dioxus_html as dioxus_elements;
|
||||
use dioxus_router::*;
|
||||
use gloo_utils::document;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use wasm_bindgen_test::*;
|
||||
|
||||
wasm_bindgen_test_configure!(run_in_browser);
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn simple_test() {
|
||||
fn main() {
|
||||
console_error_panic_hook::set_once();
|
||||
wasm_logger::init(wasm_logger::Config::new(log::Level::Debug));
|
||||
dioxus_web::launch(APP);
|
||||
}
|
||||
|
||||
static APP: Component = |cx| {
|
||||
cx.render(rsx! {
|
||||
Router {
|
||||
onchange: move |route| log::info!("route changed to {}", route),
|
||||
Route { to: "/", Home {} }
|
||||
Route { to: "blog"
|
||||
Route { to: "/", BlogList {} }
|
||||
Route { to: ":id", BlogPost {} }
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
fn Home(cx: Scope) -> Element {
|
||||
cx.render(rsx! {
|
||||
div {
|
||||
h1 { "Home" }
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fn BlogList(cx: Scope) -> Element {
|
||||
cx.render(rsx! {
|
||||
div {
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fn BlogPost(cx: Scope) -> Element {
|
||||
let id = use_route(&cx).segment::<usize>("id")?;
|
||||
|
||||
cx.render(rsx! {
|
||||
div {
|
||||
id: "test1",
|
||||
id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
let element = gloo_utils::document()
|
||||
.get_element_by_id("test1")
|
||||
.expect("No result found. Most likely, the application crashed")
|
||||
.inner_html();
|
||||
assert!(element, "");
|
||||
}
|
||||
Reference in new issue
Block a user