Fix: getAllTags bug when there are more than 15 tags #100

Merged
Jungley8 merged 2 commits from fix/get-all-tags into issue-99-Tag_slug_page_returns_404_in_dev 2024-03-10 04:54:29 +00:00
10 changed files with 34 additions and 31 deletions

View File

@ -8,7 +8,7 @@ import { getAllPosts, getAllTags, getSettings, invariant } from "@matthiesenxyz/
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {

View File

@ -2,7 +2,7 @@
import Layout from '../layouts/Default.astro';
import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import TagSummaryCard from '../components/generic/TagSummaryCard.astro';
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, 'Settings not found');
const title = settings.title;
@ -16,7 +16,7 @@ const description = settings.description;
description={description}
>
<main class='bg-pink p-6'>
{
{
tags
.filter((tag) => tag.slug && !tag.slug.startsWith("hash-"))
.map((tag) => (

View File

@ -7,7 +7,7 @@ import PostPreview from '../../components/PostPreview.astro';
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {
@ -37,7 +37,7 @@ const description = `All of the articles we've posted and linked so far under th
<Layout title={title} description={description} settings={settings}>
<Container>
<section class="post-card post-card-large">
<div class="post-card-content">
<div class="post-card-content-link">
<header class="post-card-header">

View File

@ -6,7 +6,7 @@ import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcm
let title = "All Tags";
let description = "All the tags used so far...";
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, 'Settings not found');

View File

@ -1,13 +1,13 @@
---
import type { InferGetStaticParamsType, InferGetStaticPropsType } from 'astro';
import DefaultPageLayout from "../../layouts/default.astro";
import PostPreview from "../../components/PostPreview.astro";
import { getAllPosts, getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import type { InferGetStaticParamsType, InferGetStaticPropsType } from 'astro';
import PostPreview from "../../components/PostPreview.astro";
import DefaultPageLayout from "../../layouts/default.astro";
import { getGhostImgPath } from "../../utils";
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {

View File

@ -1,13 +1,13 @@
---
import DefaultPageLayout from "../layouts/default.astro";
import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import TagCard from "../components/TagCard.astro";
import { getSettings, getAllTags, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import DefaultPageLayout from "../layouts/default.astro";
let title = "All Tags";
let description = "All the tags used so far...";
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, "Settings not found");
---

View File

@ -1,5 +1,5 @@
import { TSGhostContentAPI } from "@ts-ghost/content-api";
import type { Page, Post } from "../schemas/api";
import type { Page, Post, Tag } from "../schemas/api";
// LOAD ENVIRONMENT VARIABLES
import { loadEnv } from "vite";
@ -94,17 +94,20 @@ export const getSettings = async () => {
};
export const getAllTags = async () => {
const results = await api.tags
.browse()
const tags: Tag[] = [];
let cursor = await api.tags
.browse({
limit: 'all'
})
.include({ "count.posts": true })
.fetch();
if (!results.success) {
throw new Error(results.errors.map((e) => e.message).join(", "));
.paginate();
if (cursor.current.success) tags.push(...cursor.current.data);
while (cursor.next) {
cursor = await cursor.next.paginate();
if (cursor.current.success) tags.push(...cursor.current.data);
}
return {
tags: results.data,
meta: results.meta,
};
return tags;
};
export const getFeaturedPosts = async () => {

View File

@ -16,7 +16,7 @@ import satoriOG from "../../satori";
export const getStaticPaths: GetStaticPaths = async () => {
const result: GetStaticPathsItem[] = [];
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, "Settings are required");

View File

@ -1,13 +1,13 @@
---
import type { InferGetStaticParamsType, InferGetStaticPropsType } from 'astro';
import DefaultPageLayout from "../../layouts/default.astro";
import PostPreview from "../../components/PostPreview.astro";
import { getAllPosts, getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import type { InferGetStaticParamsType, InferGetStaticPropsType } from 'astro';
import PostPreview from "../../components/PostPreview.astro";
import DefaultPageLayout from "../../layouts/default.astro";
import { getGhostImgPath } from "../../utils";
export async function getStaticPaths() {
const posts = await getAllPosts();
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
return tags.map((tag) => {

View File

@ -1,13 +1,13 @@
---
import DefaultPageLayout from "../layouts/default.astro";
import { getAllTags, getSettings, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import TagCard from "../components/TagCard.astro";
import { getSettings, getAllTags, invariant } from "@matthiesenxyz/astro-ghostcms/api";
import DefaultPageLayout from "../layouts/default.astro";
let title = "All Tags";
let description = "All the tags used so far...";
const { tags } = await getAllTags();
const tags = await getAllTags();
const settings = await getSettings();
invariant(settings, "Settings not found");
---