diff --git a/app/api/servers/get/route.ts b/app/api/servers/get/route.ts index 64fa480..bbeaf22 100644 --- a/app/api/servers/get/route.ts +++ b/app/api/servers/get/route.ts @@ -2,15 +2,16 @@ import { NextResponse, NextRequest } from "next/server"; import { prisma } from "@/lib/prisma"; interface GetRequest { - page: number; + page?: number; + ITEMS_PER_PAGE?: number; } -const ITEMS_PER_PAGE = 5; export async function POST(request: NextRequest) { try { const body: GetRequest = await request.json(); const page = Math.max(1, body.page || 1); + const ITEMS_PER_PAGE = body.ITEMS_PER_PAGE || 4; const servers = await prisma.server.findMany({ skip: (page - 1) * ITEMS_PER_PAGE, diff --git a/app/dashboard/servers/Servers.tsx b/app/dashboard/servers/Servers.tsx index 9b5853f..ee55290 100644 --- a/app/dashboard/servers/Servers.tsx +++ b/app/dashboard/servers/Servers.tsx @@ -107,6 +107,7 @@ export default function Dashboard() { const [currentPage, setCurrentPage] = useState(1); const [maxPage, setMaxPage] = useState(1); + const [itemsPerPage, setItemsPerPage] = useState(4); const [servers, setServers] = useState([]); const [isGridLayout, setIsGridLayout] = useState(false); const [loading, setLoading] = useState(true); @@ -126,7 +127,9 @@ export default function Dashboard() { useEffect(() => { const savedLayout = Cookies.get("layoutPreference-servers"); - setIsGridLayout(savedLayout === "grid"); + const layout_bool = savedLayout === "grid"; + setIsGridLayout(layout_bool); + setItemsPerPage(layout_bool ? 6 : 4); }, []); const toggleLayout = () => { @@ -137,6 +140,7 @@ export default function Dashboard() { path: "/", sameSite: "strict", }); + setItemsPerPage(newLayout ? 6 : 4); }; const add = async () => { @@ -164,6 +168,7 @@ export default function Dashboard() { "/api/servers/get", { page: currentPage, + ITEMS_PER_PAGE: itemsPerPage, } ); setServers(response.data.servers); @@ -176,7 +181,7 @@ export default function Dashboard() { useEffect(() => { getServers(); - }, [currentPage]); + }, [currentPage, itemsPerPage]); const handlePrevious = () => { setCurrentPage((prev) => Math.max(1, prev - 1));