44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
"use client";
|
|
import { useState, useEffect } from "react";
|
|
import Game from "@/components/game";
|
|
|
|
interface GameData {
|
|
title: string;
|
|
image: string;
|
|
url: string;
|
|
}
|
|
|
|
export default function Games() {
|
|
const [games, setGames] = useState<GameData[]>([]);
|
|
|
|
useEffect(() => {
|
|
async function fetchGames() {
|
|
try {
|
|
const response = await fetch("/games.json");
|
|
if (!response.ok) {
|
|
throw new Error("Failed to fetch data");
|
|
}
|
|
const data: GameData[] = await response.json();
|
|
setGames(data);
|
|
} catch (error) {
|
|
console.error("Error fetching data:", error);
|
|
}
|
|
}
|
|
|
|
fetchGames();
|
|
}, []);
|
|
|
|
return (
|
|
<div>
|
|
<h1 className="text-6xl font-semibold py-8 text-center">Games</h1>
|
|
<div className="flex flex-wrap justify-center px-24">
|
|
{games.map((game, index) => (
|
|
<div className="p-2" key={index}>
|
|
<Game title={game.title} image={game.image} url={game.url} />
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|