Refactor the HTML and improve the styling #81

Merged
savanni merged 4 commits from file-service/html-refactoring into main 2023-10-26 04:11:33 +00:00
2 changed files with 1 additions and 52 deletions
Showing only changes of commit 448231739b - Show all commits

View File

@ -274,54 +274,3 @@ impl Html for Image {
) )
} }
} }
#[derive(Debug)]
pub struct UnorderedList {
children: Vec<String>,
attributes: Attributes,
}
impl UnorderedList {
pub fn new() -> Self {
Self {
children: vec![],
attributes: Attributes::default(),
}
}
pub fn with_attributes<'a>(
mut self,
values: impl IntoIterator<Item = (&'a str, &'a str)>,
) -> Self {
self.attributes = Attributes(
values
.into_iter()
.map(|(a, b)| (a.to_owned(), b.to_owned()))
.collect::<Vec<(String, String)>>(),
);
self
}
}
impl Html for UnorderedList {
fn to_html_string(&self) -> String {
let children = self
.children
.iter()
.map(|item| format!("<li>{}</li>", item.to_html_string()))
.collect::<Vec<String>>();
format!(
"<ul {attrs}>
{children}
</ul>",
attrs = self.attributes.to_string(),
children = children.join("\n")
)
}
}
impl HtmlContainer for UnorderedList {
fn add_html<H: Html>(&mut self, html: H) {
self.children.push(html.to_html_string())
}
}

View File

@ -95,7 +95,7 @@ pub fn thumbnail(info: &FileInfo) -> Container {
.with_html( .with_html(
Container::new(ContainerType::Div) Container::new(ContainerType::Div)
.with_html( .with_html(
UnorderedList::new() Container::new(ContainerType::UnorderedList)
.with_attributes(vec![("class", "thumbnail__metadata")]) .with_attributes(vec![("class", "thumbnail__metadata")])
.with_html(info.name.clone()) .with_html(info.name.clone())
.with_html(format!("{}", info.created.format("%Y-%m-%d"))), .with_html(format!("{}", info.created.format("%Y-%m-%d"))),