diff --git a/packages/website/src/components/DocContainer.tsx b/packages/website/src/components/DocContainer.tsx index c12afc1e2..a212a03c5 100644 --- a/packages/website/src/components/DocContainer.tsx +++ b/packages/website/src/components/DocContainer.tsx @@ -1,5 +1,6 @@ -import { Group, Stack, Title, Text, Box, MediaQuery, Aside, ScrollArea } from '@mantine/core'; +import { Group, Stack, Title, Text, Box, MediaQuery, Aside, ScrollArea, Skeleton } from '@mantine/core'; import { useMediaQuery } from '@mantine/hooks'; +import { useRouter } from 'next/router'; import { Fragment, ReactNode } from 'react'; import { VscSymbolClass, @@ -61,32 +62,39 @@ export function DocContainer({ methods, properties, }: DocContainerProps) { + const router = useRouter(); const matches = useMediaQuery('(max-width: 768px)', true, { getInitialValueInEffect: false }); return ( - - <Group> - {generateIcon(kind)} - {name} - </Group> - + + + <Group> + {generateIcon(kind)} + {name} + </Group> + + -
} padded dense={matches}> - {summary ? : No summary provided.} -
+ +
} padded dense={matches}> + {summary ? : No summary provided.} +
+
- - - {excerpt} - - + + + + {excerpt} + + + {extendsTokens?.length ? ( @@ -115,20 +123,22 @@ export function DocContainer({ ) : null} - - {typeParams?.length ? ( -
} - padded - dense={matches} - defaultClosed - > - -
- ) : null} - {children} -
+ + + {typeParams?.length ? ( +
} + padded + dense={matches} + defaultClosed + > + +
+ ) : null} + {children} +
+
{(kind === 'Class' || kind === 'Interface') && (methods?.length || properties?.length) ? ( diff --git a/packages/website/src/components/model/Class.tsx b/packages/website/src/components/model/Class.tsx index 2bcd8728e..9f09c57e7 100644 --- a/packages/website/src/components/model/Class.tsx +++ b/packages/website/src/components/model/Class.tsx @@ -1,8 +1,12 @@ +import { Skeleton } from '@mantine/core'; +import { useRouter } from 'next/router'; import { DocContainer } from '../DocContainer'; import { ConstructorSection, MethodsSection, PropertiesSection } from '../Sections'; import type { ApiClassJSON } from '~/DocModel/ApiNodeJSONEncoder'; export function Class({ data }: { data: ApiClassJSON }) { + const router = useRouter(); + return ( {data.constructor ? : null} - - + + + + + + ); } diff --git a/packages/website/src/components/model/Enum.tsx b/packages/website/src/components/model/Enum.tsx index 0dfe76184..9723bdc45 100644 --- a/packages/website/src/components/model/Enum.tsx +++ b/packages/website/src/components/model/Enum.tsx @@ -1,5 +1,6 @@ -import { Stack } from '@mantine/core'; +import { Skeleton, Stack } from '@mantine/core'; import { useMediaQuery } from '@mantine/hooks'; +import { useRouter } from 'next/router'; import { VscSymbolEnumMember } from 'react-icons/vsc'; import { CodeListing, CodeListingSeparatorType } from '../CodeListing'; import { DocContainer } from '../DocContainer'; @@ -7,23 +8,26 @@ import { Section } from '../Section'; import type { ApiEnumJSON } from '~/DocModel/ApiNodeJSONEncoder'; export function Enum({ data }: { data: ApiEnumJSON }) { + const router = useRouter(); const matches = useMediaQuery('(max-width: 768px)', true, { getInitialValueInEffect: false }); return ( -
} padded dense={matches}> - - {data.members.map((member) => ( - - ))} - -
+ +
} padded dense={matches}> + + {data.members.map((member) => ( + + ))} + +
+
); } diff --git a/packages/website/src/components/model/Function.tsx b/packages/website/src/components/model/Function.tsx index 3314e3283..0e1828a1b 100644 --- a/packages/website/src/components/model/Function.tsx +++ b/packages/website/src/components/model/Function.tsx @@ -1,8 +1,12 @@ +import { Skeleton } from '@mantine/core'; +import { useRouter } from 'next/router'; import { DocContainer } from '../DocContainer'; import { ParametersSection } from '../Sections'; import type { ApiFunctionJSON } from '~/DocModel/ApiNodeJSONEncoder'; export function Function({ data }: { data: ApiFunctionJSON }) { + const router = useRouter(); + return ( 1 ? ` (${data.overloadIndex})` : ''}`} @@ -11,7 +15,9 @@ export function Function({ data }: { data: ApiFunctionJSON }) { summary={data.summary} typeParams={data.typeParameters} > - + + + ); } diff --git a/packages/website/src/components/model/Interface.tsx b/packages/website/src/components/model/Interface.tsx index a28b5ee1b..7ee56de74 100644 --- a/packages/website/src/components/model/Interface.tsx +++ b/packages/website/src/components/model/Interface.tsx @@ -1,8 +1,12 @@ +import { Skeleton } from '@mantine/core'; +import { useRouter } from 'next/router'; import { DocContainer } from '../DocContainer'; import { MethodsSection, PropertiesSection } from '../Sections'; import type { ApiInterfaceJSON } from '~/DocModel/ApiNodeJSONEncoder'; export function Interface({ data }: { data: ApiInterfaceJSON }) { + const router = useRouter(); + return ( - - + + + + + + ); } diff --git a/packages/website/src/pages/docs/[...slug].tsx b/packages/website/src/pages/docs/[...slug].tsx index 83e81a7c4..bacfa89ea 100644 --- a/packages/website/src/pages/docs/[...slug].tsx +++ b/packages/website/src/pages/docs/[...slug].tsx @@ -121,7 +121,7 @@ export const getStaticPaths: GetStaticPaths = async () => { return { paths: pkgs, - fallback: 'blocking', + fallback: true, }; }; diff --git a/packages/website/src/pages/docs/packages/[package]/index.tsx b/packages/website/src/pages/docs/packages/[package]/index.tsx index 285ebdd9b..9350f29d9 100644 --- a/packages/website/src/pages/docs/packages/[package]/index.tsx +++ b/packages/website/src/pages/docs/packages/[package]/index.tsx @@ -30,7 +30,7 @@ export const getStaticPaths: GetStaticPaths = () => { return { paths: versions, - fallback: 'blocking', + fallback: false, }; };