✨ Expand optional component props
This commit is contained in:
parent
7c176ddafe
commit
f5cfc4442e
5 changed files with 64 additions and 18 deletions
|
|
@ -22,6 +22,9 @@ pub use opt_name::OptionName;
|
|||
mod opt_string;
|
||||
pub use opt_string::OptionString;
|
||||
|
||||
mod opt_translate;
|
||||
pub use opt_translate::OptionTranslate;
|
||||
|
||||
mod opt_classes;
|
||||
pub use opt_classes::{ClassesOp, OptionClasses};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use crate::fn_builder;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct OptionId(String);
|
||||
pub struct OptionId(Option<String>);
|
||||
|
||||
impl OptionId {
|
||||
pub fn new() -> Self {
|
||||
|
|
@ -18,17 +18,18 @@ impl OptionId {
|
|||
|
||||
#[fn_builder]
|
||||
pub fn alter_value(&mut self, value: impl Into<String>) -> &mut Self {
|
||||
self.0 = value.into().trim().replace(' ', "_");
|
||||
self.0 = Some(value.into().trim().replace(' ', "_"));
|
||||
self
|
||||
}
|
||||
|
||||
// OptionId GETTERS.
|
||||
|
||||
pub fn get(&self) -> Option<String> {
|
||||
if self.0.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(self.0.to_owned())
|
||||
if let Some(value) = &self.0 {
|
||||
if !value.is_empty() {
|
||||
return Some(value.to_owned());
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use crate::fn_builder;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct OptionName(String);
|
||||
pub struct OptionName(Option<String>);
|
||||
|
||||
impl OptionName {
|
||||
pub fn new() -> Self {
|
||||
|
|
@ -18,17 +18,18 @@ impl OptionName {
|
|||
|
||||
#[fn_builder]
|
||||
pub fn alter_value(&mut self, value: impl Into<String>) -> &mut Self {
|
||||
self.0 = value.into().trim().replace(' ', "_");
|
||||
self.0 = Some(value.into().trim().replace(' ', "_"));
|
||||
self
|
||||
}
|
||||
|
||||
// OptionName GETTERS.
|
||||
|
||||
pub fn get(&self) -> Option<String> {
|
||||
if self.0.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(self.0.to_owned())
|
||||
if let Some(value) = &self.0 {
|
||||
if !value.is_empty() {
|
||||
return Some(value.to_owned());
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use crate::fn_builder;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct OptionString(String);
|
||||
pub struct OptionString(Option<String>);
|
||||
|
||||
impl OptionString {
|
||||
pub fn new() -> Self {
|
||||
|
|
@ -18,17 +18,18 @@ impl OptionString {
|
|||
|
||||
#[fn_builder]
|
||||
pub fn alter_value(&mut self, value: impl Into<String>) -> &mut Self {
|
||||
self.0 = value.into().trim().to_owned();
|
||||
self.0 = Some(value.into().trim().to_owned());
|
||||
self
|
||||
}
|
||||
|
||||
// OptionString GETTERS.
|
||||
|
||||
pub fn get(&self) -> Option<String> {
|
||||
if self.0.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(self.0.to_owned())
|
||||
if let Some(value) = &self.0 {
|
||||
if !value.is_empty() {
|
||||
return Some(value.to_owned());
|
||||
}
|
||||
}
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
|
|||
40
pagetop/src/html/opt_translate.rs
Normal file
40
pagetop/src/html/opt_translate.rs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
use crate::fn_builder;
|
||||
use crate::html::{html, Markup};
|
||||
use crate::locale::{L10n, LanguageIdentifier};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct OptionTranslate(Option<L10n>);
|
||||
|
||||
impl OptionTranslate {
|
||||
pub fn new() -> Self {
|
||||
OptionTranslate::default()
|
||||
}
|
||||
|
||||
pub fn with(value: L10n) -> Self {
|
||||
OptionTranslate(Some(value))
|
||||
}
|
||||
|
||||
// OptionTranslate BUILDER.
|
||||
|
||||
#[fn_builder]
|
||||
pub fn alter_value(&mut self, value: L10n) -> &mut Self {
|
||||
self.0 = Some(value);
|
||||
self
|
||||
}
|
||||
|
||||
// OptionTranslate GETTERS.
|
||||
|
||||
pub fn using(&self, langid: &LanguageIdentifier) -> Option<String> {
|
||||
if let Some(value) = &self.0 {
|
||||
return value.using(langid);
|
||||
}
|
||||
None
|
||||
}
|
||||
|
||||
pub fn escaped(&self, langid: &LanguageIdentifier) -> Markup {
|
||||
if let Some(value) = &self.0 {
|
||||
return value.escaped(langid);
|
||||
}
|
||||
html! {}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue