File name
Commit message
Commit date
File name
Commit message
Commit date
09-04
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 { fetchQuizzes } from '@/lib/data/repositories/content-quiz-repository';
import { parseContentQuery } from '@/lib/domain/content-query';
import { QuizzesList } from './_components/quizzes-list';
export const metadata: Metadata = { title: '금융OX퀴즈' };
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('quiz', await searchParams);
const { items, totalCount, isTotalCountExact } = await fetchQuizzes(query);
const totalPages = isTotalCountExact
? Math.max(1, Math.ceil(totalCount / query.pageSize))
: query.page + 1;
const currentPage = Math.min(query.page, totalPages);
return (
<QuizzesList
items={items}
query={query}
currentPage={currentPage}
totalPages={totalPages}
totalCount={totalCount}
schools={schools}
gradesBySchool={gradesBySchool}
/>
);
}