summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjelemux <jeremias.weber@protonmail.com>2021-02-04 16:26:56 +0100
committerjelemux <jeremias.weber@protonmail.com>2021-02-04 16:26:56 +0100
commit0c8f99f4f58953334731cc195c385d31d8b0f695 (patch)
tree8d41d47ded008873b28a378fdbc74a9b0257dbf3
parent69ceb1f9ec68e41029759a6fcff3168adb6df373 (diff)
downloadwasm-card-0c8f99f4f58953334731cc195c385d31d8b0f695.tar.gz
wasm-card-0c8f99f4f58953334731cc195c385d31d8b0f695.tar.bz2
it works!
-rw-r--r--src/view/address.rs19
-rw-r--r--src/view/main.rs21
-rw-r--r--src/view/name.rs19
-rw-r--r--src/view/telephone.rs19
-rw-r--r--src/viewmodel/vcard.rs13
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