refactor: make the project form component handle the server calls itself

This commit is contained in:
2024-08-18 21:17:31 +02:00
parent ce7dafb576
commit 9324d841fb
5 changed files with 27 additions and 21 deletions

View File

@ -1,5 +1,5 @@
use crate::components::project_form::ProjectForm;
use crate::server::projects::create_project;
use crate::server::projects::{create_project, testing};
use dioxus::core_macro::rsx;
use dioxus::dioxus_core::Element;
use dioxus::prelude::*;
@ -7,12 +7,6 @@ use dioxus::prelude::*;
#[component]
pub(crate) fn Home() -> Element {
rsx! {
ProjectForm {
onsubmit: move |title| {
spawn(async move {
create_project(title).await;
});
}
}
ProjectForm {}
}
}

View File

@ -1,14 +1,20 @@
use crate::models::project::NewProject;
use crate::server::projects::create_project;
use dioxus::core_macro::{component, rsx};
use dioxus::dioxus_core::Element;
use dioxus::prelude::*;
#[component]
pub(crate) fn ProjectForm(onsubmit: EventHandler<NewProject>) -> Element {
pub(crate) fn ProjectForm() -> Element {
rsx! {
form {
onsubmit: move |event| {
onsubmit(NewProject::new(event.values().get("title").unwrap().as_value()));
async move {
let new_project = NewProject::new(
event.values().get("title").unwrap().as_value()
);
let _ = create_project(new_project).await;
}
},
input {
r#type: "text",