diff --git a/src/components/projects.rs b/src/components/projects.rs index 95af819..f30497c 100644 --- a/src/components/projects.rs +++ b/src/components/projects.rs @@ -1,6 +1,16 @@ -use crate::models::Project; use yew::prelude::*; +#[derive(Clone, PartialEq, Properties)] +pub struct Project { + pub title: String, + pub subtitle: String, + pub description: String, + pub technologies: Vec, + pub image_url: String, + pub links: Vec<(String, String)>, + pub reverse: bool, +} + #[derive(Properties, PartialEq)] pub struct ProjectsProps { pub projects: Vec, @@ -8,67 +18,42 @@ pub struct ProjectsProps { #[function_component(Projects)] pub fn projects(props: &ProjectsProps) -> Html { - let projects = props.projects.clone(); - html! { -
-

{"Projects I'm proud of"}

+
+

{"Projects I'm proud of"}

- { for projects.into_iter().map(|project| { - let links = project.links.clone(); - let technologies = project.technologies.clone(); - + { for props.projects.iter().map(|project| { let (text_col_start, image_col_start, text_align_class, border_class) = if project.reverse { - ("col-start-1", "col-start-6", "sm:text-left", "border-l sm:border-t border-t sm:border-b-0 border-l-custom-add border-t-custom-add sm:border-t-custom-add p-4") + ( + "col-start-1", + "col-start-6", + "sm:text-left", + "border-l sm:border-t border-b sm:border-b-0 border-l-custom-add border-b-custom-add sm:border-t-custom-add p-4" + ) } else { - ("col-start-5", "col-start-1", "text-right", "border-r border-t sm:border-b-0 sm:border-t border-r-custom-add border-t-custom-add sm:border-t-custom-add p-4") + ( + "col-start-5", + "col-start-1", + "sm:text-right", + "border-r border-b sm:border-b-0 sm:border-t border-r-custom-add border-b-custom-add sm:border-t-custom-add p-4" + ) }; html! { } - }) } + })}
}