mirror of
https://codeberg.org/demostf/frontend.git
synced 2026-06-03 18:24:12 +02:00
optimize demo list debug output
This commit is contained in:
parent
2b8cdfc736
commit
68b6421b9b
5 changed files with 27 additions and 33 deletions
|
|
@ -1,10 +1,25 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use maud::{html, Markup, Render};
|
||||
use std::fmt::{Debug, Formatter};
|
||||
|
||||
pub struct DemoList<'a> {
|
||||
pub demos: &'a [ListDemo],
|
||||
}
|
||||
|
||||
impl<'a> DemoList<'a> {
|
||||
pub fn new(demos: &'a [ListDemo]) -> Self {
|
||||
DemoList { demos }
|
||||
}
|
||||
}
|
||||
|
||||
impl Debug for DemoList<'_> {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
f.debug_list()
|
||||
.entries(self.demos.iter().map(|d| d.id))
|
||||
.finish()
|
||||
}
|
||||
}
|
||||
|
||||
impl Render for DemoList<'_> {
|
||||
fn render(&self) -> Markup {
|
||||
html! {
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ async fn index(
|
|||
let demos = ListDemo::list(&app.connection, filter).await?;
|
||||
Ok(render(
|
||||
Index {
|
||||
demos: &demos,
|
||||
demos: DemoList::new(&demos),
|
||||
maps: &app.map_list,
|
||||
api: &app.api,
|
||||
},
|
||||
|
|
@ -405,7 +405,7 @@ async fn uploads(
|
|||
Ok(render(
|
||||
Uploads {
|
||||
user,
|
||||
demos: &demos,
|
||||
demos: DemoList::new(&demos),
|
||||
maps: &app.map_list,
|
||||
api: &app.api,
|
||||
},
|
||||
|
|
@ -430,7 +430,7 @@ async fn profiles(
|
|||
Ok(render(
|
||||
Profile {
|
||||
user,
|
||||
demos: &demos,
|
||||
demos: DemoList::new(&demos),
|
||||
maps: &app.map_list,
|
||||
api: &app.api,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use crate::data::maps::MapList;
|
||||
use crate::fragments::demo_list::DemoList;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, Render};
|
||||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Index<'a> {
|
||||
pub demos: &'a [ListDemo],
|
||||
pub demos: DemoList<'a>,
|
||||
pub maps: &'a MapList,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
|
@ -17,12 +16,6 @@ pub struct Index<'a> {
|
|||
#[asset(source = "script/demo_list.js", url = "/demo_list.js")]
|
||||
pub struct DemoListScript;
|
||||
|
||||
impl<'a> Index<'a> {
|
||||
fn demo_list(&self) -> impl Render + 'a {
|
||||
DemoList { demos: self.demos }
|
||||
}
|
||||
}
|
||||
|
||||
impl Page for Index<'_> {
|
||||
fn title(&self) -> Cow<'static, str> {
|
||||
"Demos - demos.tf".into()
|
||||
|
|
@ -44,7 +37,7 @@ impl Page for Index<'_> {
|
|||
}
|
||||
}
|
||||
tbody {
|
||||
(self.demo_list())
|
||||
(self.demos)
|
||||
}
|
||||
}
|
||||
button #load-more { "Load more.." }
|
||||
|
|
|
|||
|
|
@ -1,27 +1,20 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use crate::data::maps::MapList;
|
||||
use crate::data::user::User;
|
||||
use crate::fragments::demo_list::DemoList;
|
||||
use crate::pages::index::DemoListScript;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, Render};
|
||||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Profile<'a> {
|
||||
pub user: User,
|
||||
pub demos: &'a [ListDemo],
|
||||
pub demos: DemoList<'a>,
|
||||
pub maps: &'a MapList,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
||||
impl<'a> Profile<'a> {
|
||||
fn demo_list(&self) -> impl Render + 'a {
|
||||
DemoList { demos: self.demos }
|
||||
}
|
||||
}
|
||||
|
||||
impl Page for Profile<'_> {
|
||||
fn title(&self) -> Cow<'static, str> {
|
||||
format!("Demos with {} - demos.tf", self.user.name).into()
|
||||
|
|
@ -46,7 +39,7 @@ impl Page for Profile<'_> {
|
|||
}
|
||||
}
|
||||
tbody {
|
||||
(self.demo_list())
|
||||
(self.demos)
|
||||
}
|
||||
}
|
||||
button #load-more { "Load more.." }
|
||||
|
|
|
|||
|
|
@ -1,27 +1,20 @@
|
|||
use crate::data::demo::ListDemo;
|
||||
use crate::data::maps::MapList;
|
||||
use crate::data::user::User;
|
||||
use crate::fragments::demo_list::DemoList;
|
||||
use crate::pages::index::DemoListScript;
|
||||
use crate::pages::Page;
|
||||
use demostf_build::Asset;
|
||||
use maud::{html, Markup, Render};
|
||||
use maud::{html, Markup};
|
||||
use std::borrow::Cow;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Uploads<'a> {
|
||||
pub user: User,
|
||||
pub demos: &'a [ListDemo],
|
||||
pub demos: DemoList<'a>,
|
||||
pub maps: &'a MapList,
|
||||
pub api: &'a str,
|
||||
}
|
||||
|
||||
impl<'a> Uploads<'a> {
|
||||
fn demo_list(&self) -> impl Render + 'a {
|
||||
DemoList { demos: self.demos }
|
||||
}
|
||||
}
|
||||
|
||||
impl Page for Uploads<'_> {
|
||||
fn title(&self) -> Cow<'static, str> {
|
||||
format!("Uploads by {} - demos.tf", self.user.name).into()
|
||||
|
|
@ -46,7 +39,7 @@ impl Page for Uploads<'_> {
|
|||
}
|
||||
}
|
||||
tbody {
|
||||
(self.demo_list())
|
||||
(self.demos)
|
||||
}
|
||||
}
|
||||
button #load-more { "Load more.." }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue