diff --git a/.changeset/odd-elephants-remember.md b/.changeset/odd-elephants-remember.md new file mode 100644 index 000000000..c75dcf4c2 --- /dev/null +++ b/.changeset/odd-elephants-remember.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Ensure index pages are generated on paginated results diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index cced45479..68da189fa 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -207,11 +207,6 @@ async function getPathsForRoute( paths = result.staticPaths .map((staticPath) => staticPath.params && route.generate(staticPath.params)) .filter((staticPath) => { - // Remove empty or undefined paths - if (!staticPath) { - return false; - } - // The path hasn't been built yet, include it if (!builtPaths.has(removeTrailingForwardSlash(staticPath))) { return true; diff --git a/packages/astro/test/fixtures/get-static-paths-pages/package.json b/packages/astro/test/fixtures/get-static-paths-pages/package.json new file mode 100644 index 000000000..8f600c631 --- /dev/null +++ b/packages/astro/test/fixtures/get-static-paths-pages/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/get-static-paths-pages", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/get-static-paths-pages/src/pages/[...page].astro b/packages/astro/test/fixtures/get-static-paths-pages/src/pages/[...page].astro new file mode 100644 index 000000000..47159e911 --- /dev/null +++ b/packages/astro/test/fixtures/get-static-paths-pages/src/pages/[...page].astro @@ -0,0 +1,37 @@ +--- +export async function getStaticPaths({ paginate }) { + const astronautPages = [{ + astronaut: 'Neil Armstrong', + }, { + astronaut: 'Buzz Aldrin', + }, { + astronaut: 'Sally Ride', + }, { + astronaut: 'John Glenn', + }]; + // Generate pages from our array of astronauts, with 2 to a page + return paginate(astronautPages, { pageSize: 2 }); +} + +// All paginated data is passed on the "page" prop +const { page } = Astro.props; +--- + + + +
+ + + +