|
@@ -9,34 +9,25 @@ use dioxus::prelude::*;
|
|
use dioxus_fullstack::{launch, prelude::*};
|
|
use dioxus_fullstack::{launch, prelude::*};
|
|
use serde::{Deserialize, Serialize};
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
|
|
-#[derive(Props, PartialEq, Debug, Default, Serialize, Deserialize, Clone)]
|
|
|
|
-struct AppProps {
|
|
|
|
- count: i32,
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-fn app(cx: Scope<AppProps>) -> Element {
|
|
|
|
- let state =
|
|
|
|
- use_server_future((), |()| async move { get_server_data().await.unwrap() })?.value();
|
|
|
|
|
|
+fn app() -> Element {
|
|
|
|
+ let state = use_server_future(move || async move { get_server_data().await.unwrap() });
|
|
|
|
|
|
let mut count = use_signal(|| 0);
|
|
let mut count = use_signal(|| 0);
|
|
- let text = use_signal(|| "...".to_string());
|
|
|
|
|
|
+ let mut text = use_signal(|| "...".to_string());
|
|
|
|
|
|
rsx! {
|
|
rsx! {
|
|
div {
|
|
div {
|
|
- "Server state: {state}"
|
|
|
|
|
|
+ "Server state: {state.unwrap().value().clone()}"
|
|
}
|
|
}
|
|
h1 { "High-Five counter: {count}" }
|
|
h1 { "High-Five counter: {count}" }
|
|
button { onclick: move |_| count += 1, "Up high!" }
|
|
button { onclick: move |_| count += 1, "Up high!" }
|
|
button { onclick: move |_| count -= 1, "Down low!" }
|
|
button { onclick: move |_| count -= 1, "Down low!" }
|
|
button {
|
|
button {
|
|
- onclick: move |_| {
|
|
|
|
- to_owned![text];
|
|
|
|
- async move {
|
|
|
|
- if let Ok(data) = get_server_data().await {
|
|
|
|
- println!("Client received: {}", data);
|
|
|
|
- text.set(data.clone());
|
|
|
|
- post_server_data(data).await.unwrap();
|
|
|
|
- }
|
|
|
|
|
|
+ onclick: move |_| async move {
|
|
|
|
+ if let Ok(data) = get_server_data().await {
|
|
|
|
+ println!("Client received: {}", data);
|
|
|
|
+ text.set(data.clone());
|
|
|
|
+ post_server_data(data).await.unwrap();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
"Run a server function!"
|
|
"Run a server function!"
|
|
@@ -63,5 +54,5 @@ fn main() {
|
|
#[cfg(feature = "ssr")]
|
|
#[cfg(feature = "ssr")]
|
|
tracing_subscriber::fmt::init();
|
|
tracing_subscriber::fmt::init();
|
|
|
|
|
|
- LaunchBuilder::new_with_props(app, AppProps { count: 0 }).launch()
|
|
|
|
|
|
+ LaunchBuilder::fullstack().launch(app);
|
|
}
|
|
}
|