|
|
@@ -12,7 +12,7 @@ type Props = {
|
|
|
};
|
|
|
|
|
|
export function CourseFilesListClient({ goodsId, allHref, allLabel }: Props) {
|
|
|
- const pageSize = 10;
|
|
|
+ const pageSize = 9;
|
|
|
const [page, setPage] = useState(1);
|
|
|
const [files, setFiles] = useState<CourseFile[] | null>(null);
|
|
|
const [total, setTotal] = useState(0);
|
|
|
@@ -40,8 +40,9 @@ export function CourseFilesListClient({ goodsId, allHref, allLabel }: Props) {
|
|
|
}, [goodsId, page]);
|
|
|
|
|
|
const loading = files === null;
|
|
|
+ const totalPages = Math.ceil(total / pageSize) || 1;
|
|
|
const canPrev = page > 1 && !loading;
|
|
|
- const canNext = !loading && page * pageSize < total;
|
|
|
+ const canNext = !loading && page < totalPages;
|
|
|
const previewDurationMs = 220;
|
|
|
const [iframeLoadFailed, setIframeLoadFailed] = useState(false);
|
|
|
|
|
|
@@ -210,7 +211,7 @@ export function CourseFilesListClient({ goodsId, allHref, allLabel }: Props) {
|
|
|
{t("videoPrevPage")}
|
|
|
</button>
|
|
|
<span className="text-sm text-slate-500">
|
|
|
- {t("videoCurrentPage", { page })}
|
|
|
+ {t("videoPageOfTotal", { page, totalPages })}
|
|
|
</span>
|
|
|
<button
|
|
|
type="button"
|