diff options
| author | Valentin Popov <valentin@popov.link> | 2025-06-10 17:01:27 +0300 | 
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2025-06-10 17:01:27 +0300 | 
| commit | 6a47cb4165e317721d0ebb7ff8bc33c53fa265dd (patch) | |
| tree | e1d2b4930b86be3e343a4f833a338d9e14f1cd36 /src | |
| parent | bb7481670eedd4693f8e698261dc87243fd29448 (diff) | |
| download | popov.link-6a47cb4165e317721d0ebb7ff8bc33c53fa265dd.tar.xz popov.link-6a47cb4165e317721d0ebb7ff8bc33c53fa265dd.zip | |
refactor: remove Pagination component and restructure blog page
- Deleted the Pagination component as it is no longer needed.
- Refactored the blog page to directly display posts without pagination.
- Introduced a new index page to list all blog posts in a single view.
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/Pagination.astro | 35 | ||||
| -rw-r--r-- | src/pages/[...page].astro | 33 | ||||
| -rw-r--r-- | src/pages/index.astro | 17 | 
3 files changed, 17 insertions, 68 deletions
| diff --git a/src/components/Pagination.astro b/src/components/Pagination.astro deleted file mode 100644 index 0d656df..0000000 --- a/src/components/Pagination.astro +++ /dev/null @@ -1,35 +0,0 @@ ---- -type Props = { -	readonly nextUrl?: string; -	readonly prevUrl?: string; -}; - -const { nextUrl, prevUrl } = Astro.props; ---- - -<style lang="scss"> -	div { -		text-align: center; -	} - -	span { -		margin: 0 2em; -	} -</style> - -<div> -	{ -		prevUrl && ( -			<span> -				<a href={prevUrl}>< Prev</a> -			</span> -		) -	} -	{ -		nextUrl && ( -			<span> -				<a href={nextUrl}>Next ></a> -			</span> -		) -	} -</div> diff --git a/src/pages/[...page].astro b/src/pages/[...page].astro deleted file mode 100644 index 6d513b2..0000000 --- a/src/pages/[...page].astro +++ /dev/null @@ -1,33 +0,0 @@ ---- -import type { GetStaticPaths, InferGetStaticPropsType } from "astro"; -import { getCollection } from "astro:content"; -import Layout from "../layouts/BaseLayout.astro"; -import Pagination from "../components/Pagination.astro"; -import PostSummary from "../components/PostSummary.astro"; - -type Props = InferGetStaticPropsType<typeof getStaticPaths>; - -export const getStaticPaths = (async ({ paginate }) => { -	const posts = await getCollection("blog", ({ data }) => { -		return data.draft !== true; -	}); - -	posts.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime()); - -	return paginate(posts, { -		pageSize: 10, -	}); -}) satisfies GetStaticPaths; - -const { page } = Astro.props; ---- - -<Layout> -	<section style={{ "margin-top": "3rem" }}> -		{page.data.map((post) => <PostSummary post={post} />)} -	</section> - -	<section> -		<Pagination nextUrl={page.url.next} prevUrl={page.url.prev} /> -	</section> -</Layout> diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 0000000..56ccdff --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,17 @@ +--- +import { getCollection } from "astro:content"; +import Layout from "../layouts/BaseLayout.astro"; +import PostSummary from "../components/PostSummary.astro"; + +const posts = await getCollection("blog", ({ data }) => { +	return data.draft !== true; +}); + +posts.sort((a, b) => b.data.pubDate.getTime() - a.data.pubDate.getTime()); +--- + +<Layout> +	<section style={{ "margin-top": "3rem" }}> +		{posts.map((post) => <PostSummary post={post} />)} +	</section> +</Layout> | 
