From 759c4515b905dea416a33fa0592fe416f5af9e7e Mon Sep 17 00:00:00 2001 From: LeonaS Date: Fri, 9 Oct 2026 10:54:55 +0200 Subject: [PATCH 1/6] feat(frontend): legg til view-prop i GameCard for liste og rutenett --- frontend/src/components/GameCard/GameCard.tsx | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/GameCard/GameCard.tsx b/frontend/src/components/GameCard/GameCard.tsx index b2deeb3..690148d 100644 --- a/frontend/src/components/GameCard/GameCard.tsx +++ b/frontend/src/components/GameCard/GameCard.tsx @@ -5,16 +5,20 @@ interface GameCardProps { game: GameSummary; isFavorite: boolean; onToggleFavorite: (id: string) => void; + /** 'list' = visning 1 (rad), 'grid' = visning 2 (oppsummert rute) */ + view?: 'list' | 'grid'; } //Viser ett spill i resultatlista. Lenken i tittelen dekker hele kortet (via CSS), så hele kortet er klikkbart, men skjermlesere hører bare én lenke per kort. -export function GameCard({ game, isFavorite, onToggleFavorite }: GameCardProps) { +export function GameCard({ game, isFavorite, onToggleFavorite, view = 'list' }: GameCardProps) { const year = game.released?.slice(0, 4) ?? null; - const meta = [year, game.genres.slice(0, 2).join(', ')].filter(Boolean).join(' · '); + const meta = [year, game.genres.slice(0, view === 'grid' ? 1 : 2).join(', ')] + .filter(Boolean) + .join(' · '); return ( -
+
{game.backgroundImage ? ( // alt="" fordi tittelen allerede beskriver kortet. Fast størrelse og lazy // loading hindrer at layouten hopper og sparer data ved lange lister. @@ -43,10 +47,12 @@ export function GameCard({ game, isFavorite, onToggleFavorite }: GameCardProps)
Rating
{game.rating != null ? `${game.rating.toFixed(1)} / 5` : 'Ingen'}
-
-
Metacritic
-
{game.metacritic ?? 'Ingen'}
-
+ {view === 'list' && ( +
+
Metacritic
+
{game.metacritic ?? 'Ingen'}
+
+ )} - + const toggleFavorite = (id: string) => { + setFavorites((prev) => { + const next = new Set(prev); + if (next.has(id)) next.delete(id); + else next.add(id); + return next; + }); + }; -
+ return ( +
+

Spill

+

Søkeresultater

-
-
- -

Documentation

-

Your questions, answered

- -
-
- -

Connect with us

-

Join the Vite community

- -
-
+ {/* Bytter mellom visning 1 (liste) og visning 2 (rutenett) */} +
+ + +
-
-
- + +
); }