Initial commit
This commit is contained in:
41
pages/[filename].tsx
Normal file
41
pages/[filename].tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
import React from "react";
|
||||
import { InferGetStaticPropsType } from "next";
|
||||
import { Blocks } from "../components/blocks-renderer";
|
||||
import { useTina } from "tinacms/dist/react";
|
||||
import { Layout } from "../components/layout";
|
||||
import { client } from "../tina/__generated__/client";
|
||||
|
||||
export default function HomePage(
|
||||
props: InferGetStaticPropsType<typeof getStaticProps>
|
||||
) {
|
||||
const { data } = useTina(props);
|
||||
|
||||
return (
|
||||
<Layout rawData={data} data={data.global as any}>
|
||||
<Blocks {...data.page} />
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
|
||||
export const getStaticProps = async ({ params }) => {
|
||||
const tinaProps = await client.queries.contentQuery({
|
||||
relativePath: `${params.filename}.md`,
|
||||
});
|
||||
const props = {
|
||||
...tinaProps,
|
||||
enableVisualEditing: process.env.VERCEL_ENV === "preview",
|
||||
};
|
||||
return {
|
||||
props: JSON.parse(JSON.stringify(props)) as typeof props,
|
||||
};
|
||||
};
|
||||
|
||||
export const getStaticPaths = async () => {
|
||||
const pagesListData = await client.queries.pageConnection();
|
||||
return {
|
||||
paths: pagesListData.data.pageConnection?.edges?.map((page) => ({
|
||||
params: { filename: page?.node?._sys.filename },
|
||||
})),
|
||||
fallback: false,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user