diff options
author | jelemux <jeremias.weber@protonmail.com> | 2021-02-04 16:26:56 +0100 |
---|---|---|
committer | jelemux <jeremias.weber@protonmail.com> | 2021-02-04 16:26:56 +0100 |
commit | 0c8f99f4f58953334731cc195c385d31d8b0f695 (patch) | |
tree | 8d41d47ded008873b28a378fdbc74a9b0257dbf3 | |
parent | 69ceb1f9ec68e41029759a6fcff3168adb6df373 (diff) | |
download | wasm-card-0c8f99f4f58953334731cc195c385d31d8b0f695.tar.gz wasm-card-0c8f99f4f58953334731cc195c385d31d8b0f695.tar.bz2 |
it works!
-rw-r--r-- | src/view/address.rs | 19 | ||||
-rw-r--r-- | src/view/main.rs | 21 | ||||
-rw-r--r-- | src/view/name.rs | 19 | ||||
-rw-r--r-- | src/view/telephone.rs | 19 | ||||
-rw-r--r-- | src/viewmodel/vcard.rs | 13 |
5 files changed, 28 insertions, 63 deletions
diff --git a/src/view/address.rs b/src/view/address.rs index 01c949b..1aedcbd 100644 --- a/src/view/address.rs +++ b/src/view/address.rs @@ -1,8 +1,5 @@ -use yew::services::ConsoleService; use yew::prelude::*; use yewtil::NeqAssign; -use yewtil::ptr::Irc; -use yewtil::ptr::Mrc; use super::WeakComponentLink; use crate::viewmodel::address::*; use crate::viewmodel::VCardPropertyInputObject; @@ -25,7 +22,7 @@ use crate::viewmodel::Error; /// ``` pub struct AddressView { props: Props, - value: Mrc<Address>, + value: Address, error: Option<Error>, } @@ -45,19 +42,13 @@ pub enum Msg { #[derive(Clone, PartialEq, Properties)] pub struct Props { - pub generated: Callback<Irc<Address>>, + pub generated: Callback<Address>, pub weak_link: WeakComponentLink<AddressView>, } impl VCardPropertyInputComponent<Address> for AddressView { fn get_input_object(&self) -> Address { - match self.value.irc().try_unwrap() { - Ok(address) => address, - Err(_) => { - ConsoleService::error("Couldn't unwrap address"); - Address::new() - }, - } + self.value.clone() } fn get_title(&self) -> String { "Address".to_string() @@ -74,7 +65,7 @@ impl Component for AddressView { props.weak_link.borrow_mut().replace(link); Self { props, - value: Mrc::new(Address::new()), + value: Address::new(), error: None, } } @@ -90,7 +81,7 @@ impl Component for AddressView { Msg::ToggleWork => self.value.work = !self.value.work, Msg::ToggleHome => self.value.home = !self.value.home, Msg::Generate => { - self.props.generated.emit(self.value.irc()); + self.props.generated.emit(self.value.clone()); }, }; true diff --git a/src/view/main.rs b/src/view/main.rs index b1c0dda..9b6a345 100644 --- a/src/view/main.rs +++ b/src/view/main.rs @@ -1,5 +1,4 @@ use yew::services::ConsoleService; -use yewtil::ptr::Irc; use crate::viewmodel::vcard::VCardData; use crate::viewmodel::Error; use crate::view::telephone::{self,TelephoneView}; @@ -44,9 +43,9 @@ pub enum Msg { ChangeDownloadOption(DownloadOption), Generate, - GeneratedName(Irc<Name>), - GeneratedAddress(Irc<Address>), - GeneratedTelephone(Irc<Telephone>), + GeneratedName(Name), + GeneratedAddress(Address), + GeneratedTelephone(Telephone), GenerationComplete, Nope, @@ -167,13 +166,7 @@ impl Component for MainView { self.answer_count = 0; - let vcard_data = match self.vcard_data.irc().try_unwrap() { - Ok(data) => data, - Err(err) => { - ConsoleService::error(&format!("Error when unwrapping VCardData: {:?}", err)); - VCardData::new() - }, - }; + let vcard_data = self.vcard_data.clone_inner(); let mut builder = VcardBuilder::new(); @@ -382,7 +375,7 @@ impl Component for MainView { html!{ <NameView weak_link=link generated=self.link.callback( - |n: Irc<Name>| + |n: Name| Msg::GeneratedName(n) ) /> @@ -395,7 +388,7 @@ impl Component for MainView { html!{ <AddressView weak_link=link generated=self.link.callback( - |a: Irc<Address>| + |a: Address| Msg::GeneratedAddress(a) ) /> @@ -408,7 +401,7 @@ impl Component for MainView { html!{ <TelephoneView weak_link=link generated=self.link.callback( - |t: Irc<Telephone>| + |t: Telephone| Msg::GeneratedTelephone(t) ) /> diff --git a/src/view/name.rs b/src/view/name.rs index d864e35..27dadf1 100644 --- a/src/view/name.rs +++ b/src/view/name.rs @@ -1,8 +1,5 @@ -use yew::services::ConsoleService; use yew::prelude::*; use yewtil::NeqAssign; -use yewtil::ptr::Irc; -use yewtil::ptr::Mrc; use crate::viewmodel::Error; use crate::view::WeakComponentLink; use crate::viewmodel::name::*; @@ -25,7 +22,7 @@ use super::VCardPropertyInputComponent; /// ``` pub struct NameView { props: Props, - value: Mrc<Name>, + value: Name, error: Option<Error>, } @@ -41,19 +38,13 @@ pub enum Msg { #[derive(Clone, PartialEq, Properties)] pub struct Props { - pub generated: Callback<Irc<Name>>, + pub generated: Callback<Name>, pub weak_link: WeakComponentLink<NameView>, } impl VCardPropertyInputComponent<Name> for NameView { fn get_input_object(&self) -> Name { - match self.value.clone().try_unwrap() { - Ok(name) => name, - Err(_) => { - ConsoleService::error("Couldn't unwrap name"); - Name::new() - }, - } + self.value.clone() } fn get_title(&self) -> String { "Name".to_string() @@ -70,7 +61,7 @@ impl Component for NameView { props.weak_link.borrow_mut().replace(link); Self { props, - value: Mrc::new(Name::new()), + value: Name::new(), error: None, } } @@ -82,7 +73,7 @@ impl Component for NameView { Msg::UpdateLastName(l) => self.value.last_name = l, Msg::UpdateSuffix(s) => self.value.suffix = s, Msg::Generate => { - self.props.generated.emit(self.value.irc()); + self.props.generated.emit(self.value.clone()); }, }; true diff --git a/src/view/telephone.rs b/src/view/telephone.rs index 63fdee7..5db8ae1 100644 --- a/src/view/telephone.rs +++ b/src/view/telephone.rs @@ -1,7 +1,4 @@ use yew::prelude::*; -use yew::services::ConsoleService; -use yewtil::ptr::Irc; -use yewtil::ptr::Mrc; use yewtil::NeqAssign; use crate::view::WeakComponentLink; use crate::viewmodel::Error; @@ -25,7 +22,7 @@ use super::VCardPropertyInputComponent; /// ``` pub struct TelephoneView { props: Props, - value: Mrc<Telephone>, + value: Telephone, error: Option<Error>, } @@ -46,19 +43,13 @@ pub enum Msg { #[derive(Clone, PartialEq, Properties)] pub struct Props { - pub generated: Callback<Irc<Telephone>>, + pub generated: Callback<Telephone>, pub weak_link: WeakComponentLink<TelephoneView>, } impl VCardPropertyInputComponent<Telephone> for TelephoneView { fn get_input_object(&self) -> Telephone { - match self.value.irc().try_unwrap() { - Ok(telephone) => telephone, - Err(_) => { - ConsoleService::error("Couldn't unwrap telephone"); - Telephone::new() - }, - } + self.value.clone() } fn get_title(&self) -> String { "Telephone".to_string() @@ -75,7 +66,7 @@ impl Component for TelephoneView { props.weak_link.borrow_mut().replace(link); Self { props, - value: Mrc::new(Telephone::new()), + value: Telephone::new(), error: None, } } @@ -92,7 +83,7 @@ impl Component for TelephoneView { Msg::TogglePager => self.value.pager = !self.value.pager, Msg::ToggleTextPhone => self.value.text_phone = !self.value.text_phone, Msg::Generate => { - self.props.generated.emit(self.value.irc()); + self.props.generated.emit(self.value.clone()); } }; true diff --git a/src/viewmodel/vcard.rs b/src/viewmodel/vcard.rs index 0225590..2b81fd8 100644 --- a/src/viewmodel/vcard.rs +++ b/src/viewmodel/vcard.rs @@ -1,4 +1,3 @@ -use yewtil::ptr::Irc; use crate::viewmodel::telephone::Telephone; use crate::viewmodel::address::Address; use crate::viewmodel::name::Name; @@ -6,9 +5,9 @@ use crate::viewmodel::name::Name; /// Type that represents the data structure of a vcard. #[derive(Clone, Debug)] pub struct VCardData { - pub names: Vec<Irc<Name>>, - pub addresses: Vec<Irc<Address>>, - pub telephones: Vec<Irc<Telephone>>, + pub names: Vec<Name>, + pub addresses: Vec<Address>, + pub telephones: Vec<Telephone>, } macro_rules! make_vec_adder_fn { @@ -27,7 +26,7 @@ impl VCardData { telephones: Vec::new(), } } - make_vec_adder_fn!( fn add_name names => name: Irc<Name> ); - make_vec_adder_fn!( fn add_address addresses => address: Irc<Address> ); - make_vec_adder_fn!( fn add_telephone telephones => telephone: Irc<Telephone> ); + make_vec_adder_fn!( fn add_name names => name: Name ); + make_vec_adder_fn!( fn add_address addresses => address: Address ); + make_vec_adder_fn!( fn add_telephone telephones => telephone: Telephone ); }
\ No newline at end of file |