feat: 文章分页

This commit is contained in:
2026-07-10 18:59:54 +08:00
parent 540168d30f
commit 712f556d67
7 changed files with 206 additions and 102 deletions

View File

@@ -0,0 +1,30 @@
---
import Layout from "@/layouts/Layout.astro";
import PostList from "@/components/PostList.astro";
import type {Post} from "@/types/post";
import {http} from "@/lib/request";
import {metadata} from "@/consts.ts";
const {page} = Astro.params
if (isNaN(Number(page))) {
return Astro.redirect('/')
}
const {list, total} = await http.get<ApiPageResponse<Post>>("post", {
searchParams: {
page,
page_size: metadata.postPageSize
}
});
const totalPage = Math.ceil(total / metadata.postPageSize)
if (totalPage < page) {
return Astro.redirect('/404')
}
---
<Layout>
<PostList posts={list} page={Number(page)} totalPage={totalPage}/>
</Layout>