Servers ITEMS_PER_PAGE

This commit is contained in:
headlessdev 2025-04-14 21:26:12 +02:00
parent 0a8ea98dae
commit 8fc4fea687
2 changed files with 10 additions and 4 deletions

View File

@ -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,

View File

@ -107,6 +107,7 @@ export default function Dashboard() {
const [currentPage, setCurrentPage] = useState<number>(1);
const [maxPage, setMaxPage] = useState<number>(1);
const [itemsPerPage, setItemsPerPage] = useState<number>(4);
const [servers, setServers] = useState<Server[]>([]);
const [isGridLayout, setIsGridLayout] = useState<boolean>(false);
const [loading, setLoading] = useState<boolean>(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));