feat: switch Dioxus to fullstack, add a form for creating a project
This commit is contained in:
11
src/components/app.rs
Normal file
11
src/components/app.rs
Normal file
@ -0,0 +1,11 @@
|
||||
use crate::route::Route;
|
||||
use dioxus::core_macro::rsx;
|
||||
use dioxus::dioxus_core::Element;
|
||||
use dioxus::prelude::*;
|
||||
|
||||
#[component]
|
||||
pub(crate) fn App() -> Element {
|
||||
rsx! {
|
||||
Router::<Route> {}
|
||||
}
|
||||
}
|
23
src/components/form_project.rs
Normal file
23
src/components/form_project.rs
Normal file
@ -0,0 +1,23 @@
|
||||
use dioxus::core_macro::{component, rsx};
|
||||
use dioxus::dioxus_core::Element;
|
||||
use dioxus::prelude::*;
|
||||
|
||||
#[component]
|
||||
pub(crate) fn FormProject(onsubmit: EventHandler<String>) -> Element {
|
||||
rsx! {
|
||||
form {
|
||||
onsubmit: move |event| {
|
||||
onsubmit(event.values().get("title").unwrap().as_value());
|
||||
},
|
||||
input {
|
||||
r#type: "text",
|
||||
name: "title",
|
||||
placeholder: "title"
|
||||
}
|
||||
button {
|
||||
r#type: "submit",
|
||||
"create"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
18
src/components/home.rs
Normal file
18
src/components/home.rs
Normal file
@ -0,0 +1,18 @@
|
||||
use crate::components::form_project::FormProject;
|
||||
use crate::server::projects::create_project;
|
||||
use dioxus::core_macro::rsx;
|
||||
use dioxus::dioxus_core::Element;
|
||||
use dioxus::prelude::*;
|
||||
|
||||
#[component]
|
||||
pub(crate) fn Home() -> Element {
|
||||
rsx! {
|
||||
FormProject {
|
||||
onsubmit: move |title| {
|
||||
spawn(async move {
|
||||
let _ = create_project(title).await;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
src/components/mod.rs
Normal file
3
src/components/mod.rs
Normal file
@ -0,0 +1,3 @@
|
||||
pub(crate) mod app;
|
||||
pub(crate) mod form_project;
|
||||
pub(crate) mod home;
|
Reference in New Issue
Block a user