Skip to main content

getSlide

Resolves the current slide from route params and the slides array. Use this in your [page]/page.tsx dynamic route.

Parameters

params
{ page: string }
required
The route parameters object containing the page number as a string.
slides
React.ReactNode[]
required
The array of slide elements to render.

Returns

return
React.ReactNode
The slide element at the specified index.

Behavior

  • Converts the page param to a 0-based array index (page “1” → index 0)
  • Returns notFound() if:
    • The page param is not a valid number
    • The index is negative
    • The index exceeds the slides array length

Usage Example

// app/slides/[page]/page.tsx
import { getSlide } from 'nextjs-slides';
import { slides } from '../slides';

export default async function SlidePage({ 
  params 
}: { 
  params: Promise<{ page: string }> 
}) {
  return getSlide(await params, slides);
}

generateSlideParams

Generates static params for all slides. Use with Next.js generateStaticParams for static site generation.

Parameters

slides
React.ReactNode[]
required
The array of slide elements.

Returns

return
{ page: string }[]
An array of param objects with 1-based page numbers as strings.

Usage Example

// app/slides/[page]/page.tsx
import { generateSlideParams } from 'nextjs-slides';
import { slides } from '../slides';

export const generateStaticParams = () => generateSlideParams(slides);

Output Format

For a deck with 3 slides, returns:
[
  { page: "1" },
  { page: "2" },
  { page: "3" }
]

Complete Example

// app/slides/[page]/page.tsx
import { getSlide, generateSlideParams } from 'nextjs-slides';
import { slides } from '../slides';

export const generateStaticParams = () => generateSlideParams(slides);

export default async function SlidePage({ 
  params 
}: { 
  params: Promise<{ page: string }> 
}) {
  return getSlide(await params, slides);
}

Build docs developers (and LLMs) love