docs: DX and performance improvements in API reference (#9430)

- Improve scroll behavior between active sections
- Improve lag when clicking on a sidebar item
- Refactor internal working of the `SidebarProvider` to find active items faster.
- Use Next.js's `useRouter` hook for changing the hash (since they added the option to disable scroll)
- Change `isBrowser` from a hook to a provider since it's widely used across applications.
- Other general improvements and fixes.

Closes DOCS-952
This commit is contained in:
Shahed Nasser
2024-10-02 18:51:02 +03:00
committed by GitHub
parent 5fb9c1f82e
commit 0f6f56e764
38 changed files with 294 additions and 218 deletions

View File

@@ -22,7 +22,7 @@ export const ChildDocs = ({
hideTitle = false,
childLevel = 1,
}: ChildDocsProps) => {
const { currentItems, getActiveItem } = useSidebar()
const { currentItems, activeItem } = useSidebar()
const filterType = useMemo(() => {
return showItems !== undefined
? "show"
@@ -75,7 +75,7 @@ export const ChildDocs = ({
? Object.assign({}, currentItems)
: undefined
: {
default: [...(getActiveItem()?.children || [])],
default: [...(activeItem?.children || [])],
}
if (filterType === "all" || !targetItems) {
return targetItems
@@ -85,7 +85,7 @@ export const ChildDocs = ({
...targetItems,
default: filterItems(targetItems.default),
}
}, [currentItems, type, getActiveItem, filterItems])
}, [currentItems, type, activeItem, filterItems])
const filterNonInteractiveItems = (
items: SidebarItem[] | undefined