Skip to content

Commit 23f4ef6

Browse files
committed
fixup tags page
1 parent b11c6de commit 23f4ef6

File tree

6 files changed

+168
-270
lines changed

6 files changed

+168
-270
lines changed

gatsby-node.ts

+29-6
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,7 @@ export const createPages: GatsbyNode["createPages"] = async ({
566566
tagsGroup: {
567567
group: Array<{
568568
fieldValue: string
569+
totalCount: number
569570
}>
570571
}
571572
}>(`
@@ -590,6 +591,7 @@ export const createPages: GatsbyNode["createPages"] = async ({
590591
tagsGroup: allMdx(limit: 2000) {
591592
group(field: { frontmatter: { tags: SELECT } }) {
592593
fieldValue
594+
totalCount
593595
}
594596
}
595597
}
@@ -626,12 +628,33 @@ export const createPages: GatsbyNode["createPages"] = async ({
626628

627629
// Make tag pages
628630
tags.forEach(tag => {
629-
createPage({
630-
path: `/news/tags/${tag.fieldValue}/`,
631-
component: tagTemplate,
632-
context: {
633-
tag: tag.fieldValue,
634-
},
631+
// Calculate how many pages we need for this tag.
632+
const numTagPages = Math.ceil(tag.totalCount / postsPerPage)
633+
634+
Array.from({ length: numTagPages }).forEach((_, index) => {
635+
const currentPageNumber = index + 1
636+
const previousPageNumber =
637+
currentPageNumber === 1 ? null : currentPageNumber - 1
638+
const nextPageNumber =
639+
currentPageNumber === numTagPages ? null : currentPageNumber + 1
640+
641+
createPage({
642+
// Use a friendly URL for the first page; then add /page/2, etc.
643+
path:
644+
index === 0
645+
? `/news/tags/${tag.fieldValue}/`
646+
: `/news/tags/${tag.fieldValue}/page/${index + 1}`,
647+
component: tagTemplate,
648+
context: {
649+
tag: tag.fieldValue,
650+
limit: postsPerPage,
651+
skip: index * postsPerPage,
652+
numTagPages,
653+
currentPageNumber,
654+
previousPageNumber,
655+
nextPageNumber,
656+
},
657+
})
635658
})
636659
})
637660

src/components/ArticlePreview/__tests__/ArticlePreview.test.tsx

-36
This file was deleted.

src/components/ArticlePreview/__tests__/__snapshots__/ArticlePreview.test.tsx.snap

-109
This file was deleted.

src/components/ArticlePreview/index.tsx

-35
This file was deleted.

0 commit comments

Comments
 (0)