diff --git a/packages/website/src/components/Cmdk.tsx b/packages/website/src/components/CmdK.tsx
similarity index 94%
rename from packages/website/src/components/Cmdk.tsx
rename to packages/website/src/components/CmdK.tsx
index 65f29815b..6c12d91e0 100644
--- a/packages/website/src/components/Cmdk.tsx
+++ b/packages/website/src/components/CmdK.tsx
@@ -1,5 +1,5 @@
import type { ApiItemKind } from '@microsoft/api-extractor-model';
-import { Dialog, useDialogState } from 'ariakit/dialog';
+import { Dialog } from 'ariakit/dialog';
import { Command } from 'cmdk';
import { useRouter } from 'next/router';
import { useEffect, useMemo, useState } from 'react';
@@ -17,6 +17,7 @@ import {
} from 'react-icons/vsc';
import { useKey } from 'react-use';
import useSWR from 'swr';
+import { useCmdK } from '~/contexts/cmdK';
import { PACKAGES } from '~/util/constants';
import { fetcher } from '~/util/fetcher';
import { client } from '~/util/search';
@@ -40,9 +41,9 @@ function resolveIcon(item: keyof ApiItemKind) {
}
}
-export function CmdkDialog({ currentPackageName }: { currentPackageName?: string | undefined }) {
+export function CmdKDialog({ currentPackageName }: { currentPackageName?: string | undefined }) {
const router = useRouter();
- const dialog = useDialogState();
+ const dialog = useCmdK();
const [search, setSearch] = useState('');
const [page, setPage] = useState('');
const [packageName, setPackageName] = useState('');
@@ -86,7 +87,7 @@ export function CmdkDialog({ currentPackageName }: { currentPackageName?: string
className="dark:border-dark-100 dark:hover:bg-dark-300 dark:active:bg-dark-200 [&[aria-selected]]:ring-blurple [&[aria-selected]]:ring-offset-0 [&[aria-selected]]:ring-width-4 [&[aria-selected]]:ring flex flex transform-gpu cursor-pointer select-none appearance-none flex-col place-content-center rounded bg-transparent px-4 py-2 text-base font-semibold leading-none text-black outline-0 hover:bg-neutral-100 active:translate-y-px active:bg-neutral-200 dark:text-white"
onSelect={() => {
void router.push(`/docs/packages/${packageName}/${version}`);
- dialog.setOpen(false);
+ dialog!.setOpen(false);
}}
>
@@ -111,13 +112,13 @@ export function CmdkDialog({ currentPackageName }: { currentPackageName?: string
className="dark:border-dark-100 dark:hover:bg-dark-300 dark:active:bg-dark-200 [&[aria-selected]]:ring-blurple [&[aria-selected]]:ring-offset-0 [&[aria-selected]]:ring-width-4 [&[aria-selected]]:ring flex flex transform-gpu cursor-pointer select-none appearance-none flex-col place-content-center rounded bg-transparent px-4 py-2 text-base font-semibold leading-none text-black outline-0 hover:bg-neutral-100 active:translate-y-px active:bg-neutral-200 dark:text-white"
onSelect={() => {
void router.push(item.path);
- dialog.setOpen(false);
+ dialog!.setOpen(false);
}}
>
{resolveIcon(item.kind)}
-
+
{item.name}
{item.summary}
@@ -142,7 +143,7 @@ export function CmdkDialog({ currentPackageName }: { currentPackageName?: string
return false;
},
- dialog.toggle,
+ dialog!.toggle,
{ event: 'keydown', options: {} },
[],
);
@@ -154,11 +155,12 @@ export function CmdkDialog({ currentPackageName }: { currentPackageName?: string
);
useEffect(() => {
- if (!dialog.open) {
+ if (!dialog!.open) {
setSearch('');
setPage('');
}
- }, [dialog.open]);
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [dialog!.open]);
useEffect(() => {
const searchDoc = async (searchString: string) => {
@@ -175,7 +177,7 @@ export function CmdkDialog({ currentPackageName }: { currentPackageName?: string
}, [search]);
return (
-