Add DashboardRow component

This commit is contained in:
Ethan Girouard 2024-05-11 13:16:02 -04:00
parent b1cc0f156c
commit f4908ad3b3
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146
2 changed files with 40 additions and 0 deletions

View File

@ -3,3 +3,4 @@ pub mod dashboard;
pub mod search; pub mod search;
pub mod personal; pub mod personal;
pub mod dashboard_tile; pub mod dashboard_tile;
pub mod dashboard_row;

View File

@ -0,0 +1,39 @@
use leptos::leptos_dom::*;
use leptos::*;
use serde::{Deserialize, Serialize};
use crate::components::dashboard_tile::DashboardTile;
/// A row of dashboard tiles, with a title
#[derive(Serialize, Deserialize)]
pub struct DashboardRow {
pub title: String,
pub tiles: Vec<DashboardTile>,
}
impl DashboardRow {
pub fn new(title: String, tiles: Vec<DashboardTile>) -> Self {
Self {
title,
tiles,
}
}
}
impl IntoView for DashboardRow {
fn into_view(self) -> View {
view! {
<div class="dashboard-tile-row">
<h2>{self.title}</h2>
<ul>
{self.tiles.into_iter().map(|tile_info| {
view! {
<li>
{ tile_info }
</li>
}
}).collect::<Vec<_>>()}
</ul>
</div>
}.into_view()
}
}