Arguments
-
PreviewDatarequiredThe preview data provided in
getStaticProps.
Example
The following example sets up a catch all route where page snapshots are fetched from Makeswift usingsiteVersion and rendered using the <Page> component.
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
A static method on the Makeswift class that returns the current version of the Makeswift site. This method is currently only used when calling getPageSnapshot and using Pages Router in Next.js.
getStaticProps.siteVersion and rendered using the <Page> component.
import {
GetStaticPathsResult,
GetStaticPropsContext,
GetStaticPropsResult,
} from "next";
import {
Page as MakeswiftPage,
PageProps as MakeswiftPageProps,
Makeswift,
type SiteVersion
} from "@makeswift/runtime/next";
import { client } from "@/makeswift/client";
import "@/makeswift/components";
type ParsedUrlQuery = { path?: string[] };
export async function getStaticPaths(): Promise<
GetStaticPathsResult<ParsedUrlQuery>
> {
const pages = await client.getPages().toArray();
return {
paths: pages.map((page) => ({
params: {
path: page.path.split("/").filter((segment) => segment !== ""),
},
})),
fallback: "blocking",
};
}
export type PageProps = MakeswiftPageProps & {
siteVersion: SiteVersion | null;
};
export async function getStaticProps({
params,
previewData,
}: GetStaticPropsContext<ParsedUrlQuery>): Promise<
GetStaticPropsResult<PageProps>
> {
const path = "/" + (params?.path ?? []).join("/");
const siteVersion = Makeswift.getSiteVersion(previewData);
const snapshot = await client.getPageSnapshot(path, {
siteVersion,
});
if (snapshot == null) return { notFound: true };
return {
props: {
snapshot,
siteVersion,
},
};
}
export default function Page({ snapshot }: MakeswiftPageProps) {
return <MakeswiftPage snapshot={snapshot} />;
}
Was this page helpful?