Use newer APIs to optimize data loading and fix resolution of links in the TOC (#11)

* Update api@0.16.0

* Fetch pages and files independantly

* Correctly resolve content ref in TOC

* Format

* Format

* Cleanup
This commit is contained in:
Samy Pessé
2023-11-26 23:46:51 +01:00
committed by GitHub
parent 2a03461a21
commit fbd17713fe
22 changed files with 282 additions and 154 deletions
+5 -18
View File
@@ -1,14 +1,9 @@
import {
Collection,
CustomizationSettings,
Revision,
RevisionPageDocument,
Space,
} from '@gitbook/api';
import { Collection, CustomizationSettings, Space } from '@gitbook/api';
import { Suspense } from 'react';
import { CONTAINER_MAX_WIDTH_NORMAL, CONTAINER_PADDING } from '@/components/layout';
import { t } from '@/lib/intl';
import { ContentRefContext } from '@/lib/references';
import { tcls } from '@/lib/tailwind';
import { CollectionSpacesDropdown } from './CollectionSpacesDropdown';
@@ -23,13 +18,11 @@ export function Header(props: {
space: Space;
collection: Collection | null;
collectionSpaces: Space[];
revision: Revision;
page: RevisionPageDocument;
context: ContentRefContext;
asFullWidth: boolean;
customization: CustomizationSettings;
}) {
const { space, collection, collectionSpaces, revision, page, asFullWidth, customization } =
props;
const { context, space, collection, collectionSpaces, asFullWidth, customization } = props;
return (
<header
@@ -93,13 +86,7 @@ export function Header(props: {
)}
>
{customization.header.links.map((link, index) => (
<HeaderLink
key={index}
link={link}
space={space}
revision={revision}
page={page}
/>
<HeaderLink key={index} link={link} context={context} />
))}
</div>
<div className={tcls('flex', 'basis-56', 'grow-0', 'shrink-0')}>
+8 -26
View File
@@ -1,13 +1,7 @@
import {
CustomizationContentLink,
CustomizationHeaderLink,
Revision,
RevisionPageDocument,
Space,
} from '@gitbook/api';
import { CustomizationContentLink, CustomizationHeaderLink } from '@gitbook/api';
import Link from 'next/link';
import { resolveContentRef } from '@/lib/references';
import { ContentRefContext, resolveContentRef } from '@/lib/references';
import { tcls } from '@/lib/tailwind';
import {
@@ -19,18 +13,12 @@ import {
} from './Dropdown';
export async function HeaderLink(props: {
space: Space;
revision: Revision;
page: RevisionPageDocument;
context: ContentRefContext;
link: CustomizationHeaderLink;
}) {
const { space, revision, page, link } = props;
const { context, link } = props;
const target = await resolveContentRef(link.to, {
space,
revision,
page,
});
const target = await resolveContentRef(link.to, context);
if (!target) {
return null;
@@ -73,18 +61,12 @@ export async function HeaderLink(props: {
}
async function SubHeaderLink(props: {
space: Space;
revision: Revision;
page: RevisionPageDocument;
context: ContentRefContext;
link: CustomizationContentLink;
}) {
const { space, revision, page, link } = props;
const { context, link } = props;
const target = await resolveContentRef(link.to, {
space,
revision,
page,
});
const target = await resolveContentRef(link.to, context);
if (!target) {
return null;