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) => (