ALIEZ 4 veckor sedan
förälder
incheckning
9bba1208d2
4 ändrade filer med 9 tillägg och 4 borttagningar
  1. 1 0
      messages/en.json
  2. 1 0
      messages/zh.json
  3. 6 3
      src/app/[locale]/courses/courses-list-client.tsx
  4. 1 1
      src/data/courses.ts

+ 1 - 0
messages/en.json

@@ -106,6 +106,7 @@
     "videoPrevPage": "Previous",
     "videoNextPage": "Next",
     "videoCurrentPage": "Page {page}",
+    "videoPageOfTotal": "Page {page} / {totalPages}",
     "fileListTitle": "File list",
     "fileListLoading": "Loading files...",
     "fileListEmpty": "No files yet",

+ 1 - 0
messages/zh.json

@@ -106,6 +106,7 @@
     "videoPrevPage": "上一页",
     "videoNextPage": "下一页",
     "videoCurrentPage": "第 {page} 页",
+    "videoPageOfTotal": "第 {page} / {totalPages} 页",
     "fileListTitle": "文件列表",
     "fileListLoading": "文件加载中...",
     "fileListEmpty": "暂无文件数据",

+ 6 - 3
src/app/[locale]/courses/courses-list-client.tsx

@@ -21,7 +21,7 @@ function shouldShowFreeBadge(course: Course): boolean {
 }
 
 export function CoursesListClient({ active, initialCourses }: Props) {
-  const pageSize = 10;
+  const pageSize = 9;
   const [courses, setCourses] = useState(initialCourses);
   const [loading, setLoading] = useState(true);
   const [page, setPage] = useState(1);
@@ -51,8 +51,9 @@ export function CoursesListClient({ active, initialCourses }: Props) {
     };
   }, [active, page]);
 
+  const totalPages = Math.ceil(total / pageSize) || 1;
   const canPrev = page > 1 && !loading;
-  const canNext = !loading && page * pageSize < total;
+  const canNext = !loading && page < totalPages;
 
   return (
     <div>
@@ -153,7 +154,9 @@ export function CoursesListClient({ active, initialCourses }: Props) {
         >
           {t("videoPrevPage")}
         </button>
-        <span className="text-sm font-medium text-slate-500">{t("videoCurrentPage", { page })}</span>
+        <span className="text-sm font-medium text-slate-500">
+          {t("videoPageOfTotal", { page, totalPages })}
+        </span>
         <button
           type="button"
           onClick={() => { if (canNext) { setLoading(true); setPage((p) => p + 1); } }}

+ 1 - 1
src/data/courses.ts

@@ -505,7 +505,7 @@ export async function fetchCoursesPaged(
 }
 
 export async function fetchCourses(category?: CourseCategory): Promise<Course[]> {
-  const result = await fetchCoursesPaged(category, { current: 1, row: 10 });
+  const result = await fetchCoursesPaged(category, { current: 1, row: 9 });
   return result.list;
 }