import PrimaryButton from "@/components/button/PrimaryButton"; import TextInput from "@/components/input/TextInput"; import DangerMessage from "@/components/message/DangerMessage"; import Pagination from "@/components/pagination/Pagination"; import { useGetGames, useGetGamesCount } from "@/hooks/GameHooks"; import { useEffect, useState } from "react"; import GamesList from "./GamesList"; import GamesListSkeleton from "./GamesListSkeleton"; import GameModal from "./modals/GameModal"; export default function GamesLoader(){ const [ displayCreateGameModal, setDisplayCreateGameModal ] = useState(false); const [ page, setPage ] = useState(1); const [ totalPages, setTotalPages ] = useState(1); const [ searchTerm, setSearchTerm ] = useState(""); const pageSize = 10; const modalId = crypto.randomUUID().replace("-", ""); const gamesQuery = useGetGames(page - 1, pageSize); const gamesCountQuery = useGetGamesCount(); useEffect(() => { if(gamesCountQuery.status === "success"){ setTotalPages(Math.ceil(gamesCountQuery.data / pageSize)); } }, [ gamesCountQuery ]); if(gamesQuery.status === "pending"){ return } else if(gamesQuery.status === "error"){ return Error {gamesQuery.error.message} } else{ return ( <>
 
{/* Add Game Button */}
setDisplayCreateGameModal(true)} > Create Game setDisplayCreateGameModal(false)} game={undefined} />
{/* Game Search Box */}
setSearchTerm(e.target.value)} placeholder="Search" />
{/* Game List */} {/* Pagination */}
); } }