import { compareDate } from "../_utils/date.ts"; import { GameData } from "../_utils/game.ts"; import { GameTable } from "../_components/GameTable.tsx"; import { compareGameProgress } from "../_utils/game.ts"; import { GlobalData } from "../_utils/site.ts"; export const layout = "base.tsx"; export default function (data: GlobalData, helpers: Lume.Helpers) { const intro_section = data.content ? (
{data.children}
) : null; const games: GameData[] = data.search.pages("game"); const active_games = games .filter((game) => game.active) .sort(compareDate as any); const active_games_section = (

Now playing

); const top_games = games .sort((a, b) => ((b.rating ?? 0) - (a.rating ?? 0))) .slice(0, 10); const top_games_section = (

Top games

); const played_games = games .sort((a, b) => ((b.hours_played ?? 0) - (a.hours_played ?? 0))) .slice(0, 10); const played_games_section = (

Most played games

); const progress_games = games .sort((a, b) => -compareGameProgress(a, b)) .slice(0, 10); const progress_games_section = (

Most progressed games

); const latest_games = games .sort((a, b) => -compareDate(a, b)) .slice(0, 10); const latest_games_section = (

Latest updates

); const games_cols = ( games.length > 0 ) ? (

Videogames {" "} View all

{active_games.length > 0 && (
{active_games_section}
)}
{top_games_section} {progress_games_section}
{played_games_section} {latest_games_section}
) : null; return (
{intro_section} {games_cols}
); }