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 (
-
-
+
);
}