use serde::{Deserialize, Serialize}; use yewdux::Store; #[derive(Debug, Default, Clone, PartialEq, Store, Serialize, Deserialize)] #[store(storage = "local")] pub struct UserData { id: Option, email_address: Option, token: Option, } impl UserData { pub fn email_address(&self) -> Option { self.email_address.clone() } pub fn id(&self) -> Option { self.id.clone() } pub fn token(&self) -> Option { self.token.clone() } } pub fn set_email_address(dispatch: yewdux::Dispatch, email_address: Option) { dispatch.reduce_mut(move |store| { store.email_address = email_address; }) } pub fn set_token(dispatch: yewdux::Dispatch, token: Option) { dispatch.reduce_mut(move |store| { store.token = token; }) } pub fn set_id(dispatch: yewdux::Dispatch, id: Option) { dispatch.reduce_mut(move |store| { store.id = id; }) }