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

View file

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