From b55caae3cc68cc9273be7253a7b0cff1b515b6ba Mon Sep 17 00:00:00 2001 From: Austin Alvarado Date: Mon, 5 Feb 2024 15:42:29 +0000 Subject: [PATCH] popped stash --- app/Cargo.toml | 2 + app/src/components/user_details_form.rs | 160 +++++++----------------- 2 files changed, 49 insertions(+), 113 deletions(-) diff --git a/app/Cargo.toml b/app/Cargo.toml index 5ce750a..566f087 100644 --- a/app/Cargo.toml +++ b/app/Cargo.toml @@ -38,11 +38,13 @@ features = [ "Document", "Element", "FileReader", + "FormData", "HtmlDocument", "HtmlInputElement", "HtmlOptionElement", "HtmlOptionsCollection", "HtmlSelectElement", + "SubmitEvent", "console", ] diff --git a/app/src/components/user_details_form.rs b/app/src/components/user_details_form.rs index 56100c6..3552e6d 100644 --- a/app/src/components/user_details_form.rs +++ b/app/src/components/user_details_form.rs @@ -11,9 +11,10 @@ use gloo_file::{ }; use graphql_client::GraphQLQuery; use validator_derive::Validate; -use web_sys::{FileList, HtmlInputElement, InputEvent}; +use web_sys::{FileList, HtmlInputElement, InputEvent, SubmitEvent}; use yew::prelude::*; use yew_form_derive::Model; +use gloo_console::log; #[derive(Default)] struct JsFile { @@ -85,6 +86,8 @@ pub enum Msg { FileLoaded(String, Result>), /// We got the response from the server about our update message. UserUpdated(Result), + /// The "Submit" button was clicked. + OnSubmit(SubmitEvent), } #[derive(yew::Properties, Clone, PartialEq, Eq)] @@ -148,6 +151,10 @@ impl CommonComponent for UserDetailsForm { self.reader = None; Ok(false) } + Msg::OnSubmit(e) => { + log!(format!("{:#?}", e)); + Ok(true) + } } } @@ -195,108 +202,41 @@ impl Component for UserDetailsForm { }; html! {
-
-
- -
- {&self.user.id} -
-
-
- -
- {&self.user.creation_date.naive_local().date()} -
-
-
- -
- {&self.user.uuid} -
-
-
- -
- -
- {&self.form.field_message("email")} -
-
-
-
- -
- -
- {&self.form.field_message("display_name")} -
-
-
-
- -
- -
- {&self.form.field_message("first_name")} -
-
-
-
- -
- -
- {&self.form.field_message("last_name")} -
-
-
+ + + {&self.user.id} + + + {&self.user.creation_date.naive_local().date()} + + + {&self.user.uuid} + + + form={&self.form} + required=true + label="Email" + field_name="email" + input_type="email" + oninput={link.callback(|_| Msg::Update)} /> + + form={&self.form} + label="Display name" + field_name="display_name" + autocomplete="name" + oninput={link.callback(|_| Msg::Update)} /> + + form={&self.form} + label="First name" + field_name="first_name" + autocomplete="given-name" + oninput={link.callback(|_| Msg::Update)} /> + + form={&self.form} + label="Last name" + field_name="last_name" + autocomplete="family-name" + oninput={link.callback(|_| Msg::Update)} />
-
- -
+ { if let Some(e) = &self.common.error {