From 78e02c4b63d680200a64d4661dd3f89539b8f622 Mon Sep 17 00:00:00 2001 From: iCrawl Date: Tue, 11 Apr 2023 19:19:33 +0200 Subject: [PATCH] fix(website): navigation and 404 --- .../[package]/[version]/[item]/loading.tsx | 1 - .../[package]/[version]/[item]/not-found.tsx | 22 +++++++++++++++++++ .../[package]/[version]/[item]/page.tsx | 10 ++++++++- .../packages/[package]/[version]/loading.tsx | 1 - apps/website/src/app/providers.tsx | 15 +++++-------- apps/website/src/components/ServiceWorker.tsx | 9 -------- apps/website/src/components/Sidebar.tsx | 6 ++--- .../src/components/SystemThemeFallback.tsx | 9 -------- 8 files changed, 40 insertions(+), 33 deletions(-) delete mode 100644 apps/website/src/app/docs/packages/[package]/[version]/[item]/loading.tsx create mode 100644 apps/website/src/app/docs/packages/[package]/[version]/[item]/not-found.tsx delete mode 100644 apps/website/src/app/docs/packages/[package]/[version]/loading.tsx delete mode 100644 apps/website/src/components/ServiceWorker.tsx delete mode 100644 apps/website/src/components/SystemThemeFallback.tsx diff --git a/apps/website/src/app/docs/packages/[package]/[version]/[item]/loading.tsx b/apps/website/src/app/docs/packages/[package]/[version]/[item]/loading.tsx deleted file mode 100644 index bde40d687..000000000 --- a/apps/website/src/app/docs/packages/[package]/[version]/[item]/loading.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default } from '~/app/loading'; diff --git a/apps/website/src/app/docs/packages/[package]/[version]/[item]/not-found.tsx b/apps/website/src/app/docs/packages/[package]/[version]/[item]/not-found.tsx new file mode 100644 index 000000000..ef415676c --- /dev/null +++ b/apps/website/src/app/docs/packages/[package]/[version]/[item]/not-found.tsx @@ -0,0 +1,22 @@ +'use client'; + +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; + +export default function NotFound() { + const pathname = usePathname(); + const href = pathname.split('/').slice(0, -1).join('/'); + + return ( +
+

404

+

Not found.

+ + Take me back + +
+ ); +} diff --git a/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx b/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx index 68f1ff3fa..8c2908912 100644 --- a/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx +++ b/apps/website/src/app/docs/packages/[package]/[version]/[item]/page.tsx @@ -140,5 +140,13 @@ function Member({ member }: { member?: ApiItem }) { export default async function Page({ params }: { params: ItemRouteParams }) { const member = await fetchMember(params); - return
{member ? : null}
; + if (!member) { + notFound(); + } + + return ( +
+ +
+ ); } diff --git a/apps/website/src/app/docs/packages/[package]/[version]/loading.tsx b/apps/website/src/app/docs/packages/[package]/[version]/loading.tsx deleted file mode 100644 index bde40d687..000000000 --- a/apps/website/src/app/docs/packages/[package]/[version]/loading.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default } from '~/app/loading'; diff --git a/apps/website/src/app/providers.tsx b/apps/website/src/app/providers.tsx index 245040a52..4a90036e5 100644 --- a/apps/website/src/app/providers.tsx +++ b/apps/website/src/app/providers.tsx @@ -2,15 +2,12 @@ import { ThemeProvider } from 'next-themes'; import type { PropsWithChildren } from 'react'; -import { ServiceWorker } from '~/components/ServiceWorker'; -import { SystemThemeFallback } from '~/components/SystemThemeFallback'; +import { useSystemThemeFallback } from '~/hooks/useSystemThemeFallback'; +import { useUnregisterServiceWorker } from '~/hooks/useUnregisterServiceWorker'; export function Providers({ children }: PropsWithChildren) { - return ( - <> - {children} - - - - ); + useUnregisterServiceWorker(); + useSystemThemeFallback(); + + return {children}; } diff --git a/apps/website/src/components/ServiceWorker.tsx b/apps/website/src/components/ServiceWorker.tsx deleted file mode 100644 index 84d63d48d..000000000 --- a/apps/website/src/components/ServiceWorker.tsx +++ /dev/null @@ -1,9 +0,0 @@ -'use client'; - -import { useUnregisterServiceWorker } from '~/hooks/useUnregisterServiceWorker'; - -export function ServiceWorker() { - useUnregisterServiceWorker(); - - return null; -} diff --git a/apps/website/src/components/Sidebar.tsx b/apps/website/src/components/Sidebar.tsx index 73f1880d6..4c605ada2 100644 --- a/apps/website/src/components/Sidebar.tsx +++ b/apps/website/src/components/Sidebar.tsx @@ -7,7 +7,7 @@ import { VscSymbolField } from '@react-icons/all-files/vsc/VscSymbolField'; import { VscSymbolInterface } from '@react-icons/all-files/vsc/VscSymbolInterface'; import { VscSymbolMethod } from '@react-icons/all-files/vsc/VscSymbolMethod'; import { VscSymbolVariable } from '@react-icons/all-files/vsc/VscSymbolVariable'; -import { usePathname } from 'next/navigation'; +import { useSelectedLayoutSegment } from 'next/navigation'; import { useMemo } from 'react'; import { ItemLink } from './ItemLink'; import { Section } from './Section'; @@ -83,7 +83,7 @@ function resolveIcon(item: string) { } export function Sidebar({ members }: { members: SidebarSectionItemData[] }) { - const pathname = usePathname(); + const segment = useSelectedLayoutSegment(); const { setOpened } = useNav(); const groupItems = useMemo(() => groupMembers(members), [members]); @@ -97,7 +97,7 @@ export function Sidebar({ members }: { members: SidebarSectionItemData[] }) { {groupItems[group].map((member, index) => (