Server: Thumbnail view for front page

This commit is contained in:
asonix 2021-01-24 15:53:02 -06:00
parent 8fbf77cfe4
commit 04c5524a4e
2 changed files with 15 additions and 13 deletions

View file

@ -1,7 +1,7 @@
use crate::{ use crate::{
error::Error, error::Error,
extensions::{ProfileExt, SubmissionExt}, extensions::{ProfileExt, SubmissionExt},
images::IconImage, images::ThumbnailImage,
middleware::UserProfile, middleware::UserProfile,
nav::NavState, nav::NavState,
pagination::{ pagination::{
@ -13,7 +13,7 @@ use crate::{
}; };
use actix_web::{web, HttpRequest, HttpResponse}; use actix_web::{web, HttpRequest, HttpResponse};
use hyaenidae_accounts::User; use hyaenidae_accounts::User;
use hyaenidae_toolkit::{Button, IndicatorColor, Tile}; use hyaenidae_toolkit::{Button, IndicatorColor, Thumbnail};
use uuid::Uuid; use uuid::Uuid;
pub(crate) async fn home( pub(crate) async fn home(
@ -82,7 +82,7 @@ impl ViewHomeState {
Ok(state) Ok(state)
} }
pub(crate) fn submissions(&self) -> Vec<Tile> { pub(crate) fn submissions(&self) -> Vec<Thumbnail> {
self.submissions self.submissions
.iter() .iter()
.filter_map(move |submission_id| { .filter_map(move |submission_id| {
@ -94,18 +94,20 @@ impl ViewHomeState {
let file = self.cache.file_map.get(&file_id)?; let file = self.cache.file_map.get(&file_id)?;
let key = file.pictrs_key()?; let key = file.pictrs_key()?;
let tile = Tile::new(IconImage::new(key, &submission.title_text())) let thumb = Thumbnail::new(
.title(&submission.title_text()) ThumbnailImage::new(key, &submission.title_text()),
.description(&author.name()) &submission.view_path(),
.link(&submission.view_path()); )
.title(&submission.title_text())
.author(&author.name(), &author.view_path());
if submission.files().len() > 1 { if submission.files().len() > 1 {
Some(tile.indicator( Some(thumb.indicator(
&format!("+{}", submission.files().len() - 1), &format!("+{}", submission.files().len() - 1),
IndicatorColor::White, IndicatorColor::White,
)) ))
} else { } else {
Some(tile) Some(thumb)
} }
}) })
.collect() .collect()

View file

@ -3,7 +3,7 @@
@use crate::templates::layouts::home; @use crate::templates::layouts::home;
@use hyaenidae_toolkit::templates::button_group; @use hyaenidae_toolkit::templates::button_group;
@use hyaenidae_toolkit::{templates::{card, card_body, card_section, card_title}, Card}; @use hyaenidae_toolkit::{templates::{card, card_body, card_section, card_title}, Card};
@use hyaenidae_toolkit::{templates::{tile, tiles}, Tiles}; @use hyaenidae_toolkit::templates::{thumbnail, thumbnails};
@(home_view: &ViewHomeState, nav_state: &NavState) @(home_view: &ViewHomeState, nav_state: &NavState)
@ -11,9 +11,9 @@
@:card(&Card::full_width().dark(nav_state.dark()), { @:card(&Card::full_width().dark(nav_state.dark()), {
@:card_title({ Submissions }) @:card_title({ Submissions })
@:card_section({ @:card_section({
@:tiles(&Tiles::new(), { @:thumbnails({
@for t in home_view.submissions() { @for thumb in home_view.submissions() {
@:tile(&t) @:thumbnail(&thumb)
} }
}) })
}) })