File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import type { Metadata } from 'next';
import { verifySession } from '@/lib/auth/dal';
import { fetchSchoolGradeCodes } from '@/lib/data/repositories/common-code-repository';
import { fetchContents } from '@/lib/data/repositories/content-repository';
import { parseContentQuery } from '@/lib/domain/content-query';
import { ComicsList } from './_components/comics-list';
export const metadata: Metadata = { title: '4컷금융만화' };
export const dynamic = 'force-dynamic';
interface PageProps {
searchParams: Promise<Record<string, string | string[] | undefined>>;
}
export default async function Page({ searchParams }: PageProps) {
await verifySession();
const { schools, gradesBySchool } = await fetchSchoolGradeCodes();
const query = parseContentQuery('comic', await searchParams);
const { items, totalCount, isTotalCountExact } = await fetchContents('comic', query);
const totalPages = isTotalCountExact
? Math.max(1, Math.ceil(totalCount / query.pageSize))
: query.page + 1;
const currentPage = Math.min(query.page, totalPages);
return (
<ComicsList
items={items}
query={query}
currentPage={currentPage}
totalPages={totalPages}
totalCount={totalCount}
schools={schools}
gradesBySchool={gradesBySchool}
/>
);
}