diff --git a/src/app/[[...pathname]]/page.tsx b/src/app/[[...pathname]]/page.tsx index a48368ef7..0d93d8110 100644 --- a/src/app/[[...pathname]]/page.tsx +++ b/src/app/[[...pathname]]/page.tsx @@ -3,11 +3,38 @@ import { headers } from 'next/headers'; import { api } from '@/lib/api'; import { SpaceContent } from '@/components/SpaceContent'; -export default async function Page(props: { params: { pathname?: string[] } }) { +interface PageParams { + pathname?: string[]; +} + +export default async function Page(props: { params: PageParams }) { const { params: { pathname }, } = props; + const { space, revision } = await fetchData(props.params); + + return ( + + ); +} + +export async function generateMetadata({ params }: { params: PageParams }) { + const { space, revision } = await fetchData(params); + + return { + title: space.title, + }; +} + +/** + * Fetch all the data needed for the page. + */ +async function fetchData(params: PageParams) { const headersList = headers(); const spaceId = headersList.get('x-gitbook-space'); @@ -20,11 +47,8 @@ export default async function Page(props: { params: { pathname?: string[] } }) { api().spaces.getCurrentRevision(spaceId), ]); - return ( - - ); + return { + space, + revision, + }; } diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 1896bc4ec..ea327967f 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -13,7 +13,7 @@ export function Header(props: { space: Space }) { const { space } = props; return ( -
- + ); }