From 29102b4ad6652998d64bf2ec4c2263591120a9a4 Mon Sep 17 00:00:00 2001 From: DarkCat09 Date: Mon, 31 Jul 2023 15:38:05 +0400 Subject: [PATCH] Page controls --- src/components/PageCtrlBtn.astro | 52 ++++++++++++++++++++++++++++++++ src/pages/blog/page[page].astro | 17 ++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 src/components/PageCtrlBtn.astro diff --git a/src/components/PageCtrlBtn.astro b/src/components/PageCtrlBtn.astro new file mode 100644 index 0000000..e0a5f6e --- /dev/null +++ b/src/components/PageCtrlBtn.astro @@ -0,0 +1,52 @@ +--- +import Icon from './Icon.astro'; + +export interface Props { + btnKind: 'prev' | 'pagenum' | 'next'; + url?: string | undefined; + num?: number; +} + +const { btnKind, url, num = 1 } = Astro.props; +--- + + + { + btnKind === 'pagenum' ? {num} : + btnKind === 'prev' ? : + btnKind === 'next' ? : + "" + } + + + diff --git a/src/pages/blog/page[page].astro b/src/pages/blog/page[page].astro index 5b90124..ae141d5 100644 --- a/src/pages/blog/page[page].astro +++ b/src/pages/blog/page[page].astro @@ -1,8 +1,10 @@ --- import BlogLayout from "../../layouts/BlogLayout.astro"; import ArticleCard from "../../components/ArticleCard.astro"; +import PageCtrlBtn from "../../components/PageCtrlBtn.astro"; import { getCollection } from "astro:content"; +import { Page } from "astro"; export async function getStaticPaths({ paginate }) { const POSTS_ON_PAGE = 15; @@ -19,7 +21,7 @@ export async function getStaticPaths({ paginate }) { return paginate(posts, { pageSize: POSTS_ON_PAGE }); } -const { page } = Astro.props; +const page: Page = Astro.props.page; const description = "DarkCat09's blog. " + "Reading a QR code without a phone, " + @@ -35,6 +37,11 @@ const description =
{page.data.map(({ post }) => )}
+
+ + + +