diff --git a/apps/website/src/app/docs/packages/[package]/[version]/providers.tsx b/apps/website/src/app/docs/packages/[package]/[version]/providers.tsx
index a3e4ca970..27ee38f28 100644
--- a/apps/website/src/app/docs/packages/[package]/[version]/providers.tsx
+++ b/apps/website/src/app/docs/packages/[package]/[version]/providers.tsx
@@ -2,12 +2,15 @@
import type { PropsWithChildren } from 'react';
import { CmdKProvider } from '~/contexts/cmdK';
+import { MemberProvider } from '~/contexts/member';
import { NavProvider } from '~/contexts/nav';
export function Providers({ children }: PropsWithChildren) {
return (
- {children}
+
+ {children}
+
);
}
diff --git a/apps/website/src/contexts/member.tsx b/apps/website/src/contexts/member.tsx
index 0f0c84d58..0c0db2923 100644
--- a/apps/website/src/contexts/member.tsx
+++ b/apps/website/src/contexts/member.tsx
@@ -1,17 +1,21 @@
'use client';
import type { ApiItemJSON } from '@discordjs/api-extractor-utils';
-import { createContext, useContext, type ReactNode } from 'react';
+import type { ApiItem } from '@microsoft/api-extractor-model';
+import { createContext, useContext, useMemo, useState } from 'react';
+import type { PropsWithChildren, Dispatch, SetStateAction } from 'react';
-export const MemberContext = createContext(undefined);
+export const MemberContext = createContext<{
+ member: ApiItem | ApiItemJSON | null | undefined;
+ setMember: Dispatch>;
+}>({ member: undefined, setMember: (_) => {} });
-export const MemberProvider = ({
- member,
- children,
-}: {
- children?: ReactNode | undefined;
- member: ApiItemJSON | null | undefined;
-}) => {children};
+export const MemberProvider = ({ children }: PropsWithChildren) => {
+ const [member, setMember] = useState(undefined);
+ const value = useMemo(() => ({ member, setMember }), [member]);
+
+ return {children};
+};
export function useMember() {
return useContext(MemberContext);
diff --git a/apps/website/src/contexts/nav.tsx b/apps/website/src/contexts/nav.tsx
index f7a1d102f..031417b73 100644
--- a/apps/website/src/contexts/nav.tsx
+++ b/apps/website/src/contexts/nav.tsx
@@ -1,6 +1,14 @@
'use client';
-import { type PropsWithChildren, type Dispatch, type SetStateAction, createContext, useContext, useState } from 'react';
+import {
+ type PropsWithChildren,
+ type Dispatch,
+ type SetStateAction,
+ createContext,
+ useContext,
+ useState,
+ useMemo,
+} from 'react';
export const NavContext = createContext<{ opened: boolean; setOpened: Dispatch> }>({
opened: false,
@@ -9,9 +17,9 @@ export const NavContext = createContext<{ opened: boolean; setOpened: Dispatch {
const [opened, setOpened] = useState(false);
+ const value = useMemo(() => ({ opened, setOpened }), [opened]);
- // eslint-disable-next-line react/jsx-no-constructed-context-values
- return {children};
+ return {children};
};
export function useNav() {