* implement Into<CaptureError> for the server function error type * document the server function error type * fix tests
50 lines
1.1 KiB
Rust
50 lines
1.1 KiB
Rust
// This test asserts that the client feature is disable on the server build by the cli
|
|
// even if it is set as a default feature
|
|
|
|
#![allow(non_snake_case)]
|
|
use dioxus::prelude::*;
|
|
|
|
fn main() {
|
|
launch(app);
|
|
}
|
|
|
|
fn app() -> Element {
|
|
let server_features = use_server_future(get_server_features)?.unwrap().unwrap();
|
|
let mut client_features = use_signal(Vec::new);
|
|
|
|
use_effect(move || {
|
|
client_features.set(current_platform_features());
|
|
});
|
|
|
|
let mut count = use_signal(|| 0);
|
|
|
|
rsx! {
|
|
div {
|
|
"server features: {server_features:?}"
|
|
}
|
|
div {
|
|
"client features: {client_features:?}"
|
|
}
|
|
button {
|
|
onclick: move |_| count += 1,
|
|
"{count}"
|
|
}
|
|
}
|
|
}
|
|
|
|
fn current_platform_features() -> Vec<String> {
|
|
let mut features = Vec::new();
|
|
if cfg!(feature = "web") {
|
|
features.push("web".to_string());
|
|
}
|
|
if cfg!(feature = "server") {
|
|
features.push("server".to_string());
|
|
}
|
|
features
|
|
}
|
|
|
|
#[server]
|
|
async fn get_server_features() -> ServerFnResult<Vec<String>> {
|
|
Ok(current_platform_features())
|
|
}
|