docs: redesign sidebar (#8408)

* initial changes

* redesign the sidebar + nav drawer

* changes to sidebar items

* finish up sidebar redesign

* support new sidebar in resources

* general fixes

* integrate in ui

* support api reference

* refactor

* integrate in user guide

* docs: fix build errors

* fix user guide build

* more refactoring

* added banner

* added bottom logo + icon

* fix up sidebar

* fix up paddings

* fix shadow bottom

* docs: add table of content (#8445)

* add toc types

* implement toc functionality

* finished toc redesign

* redesigned table of content

* mobile fixes

* truncate text in toc

* mobile fixes

* merge fixes

* implement redesign

* add hide sidebar

* add menu action item

* finish up hide sidebar design

* implement redesign in resources

* integrate in api reference

* integrate changes in ui

* fixes to api reference scrolling

* fix build error

* fix build errors

* fixes

* fixes to sidebar

* general fixes

* fix active category not closing

* fix long titles
This commit is contained in:
Shahed Nasser
2024-08-15 12:13:13 +03:00
committed by GitHub
parent 4cb28531e5
commit b4f3b8a79d
157 changed files with 5080 additions and 2010 deletions

View File

@@ -1,5 +1,5 @@
import { getLinkWithBasePath } from "docs-ui"
export default function basePathUrl(path: string) {
export default function basePathUrl(path = "") {
return getLinkWithBasePath(path, process.env.NEXT_PUBLIC_BASE_PATH)
}

View File

@@ -4,7 +4,7 @@ export default function checkElementInViewport(
height?: number
) {
const rect = element.getBoundingClientRect()
const windowHeight =
const windowHeight: number | undefined =
height || window.innerHeight || document.documentElement.clientHeight
return !(

View File

@@ -1,4 +1,4 @@
import type { SidebarItemType } from "types"
import type { SidebarItem } from "types"
import type { Operation, PathsObject } from "@/types/openapi"
import type { OpenAPIV3 } from "openapi-types"
import dynamic from "next/dynamic"
@@ -11,13 +11,14 @@ const MethodLabel = dynamic<MethodLabelProps>(
export default function getTagChildSidebarItems(
paths: PathsObject
): SidebarItemType[] {
const items: SidebarItemType[] = []
): SidebarItem[] {
const items: SidebarItem[] = []
Object.entries(paths).forEach(([, operations]) => {
Object.entries(operations).map(([method, operation]) => {
const definedOperation = operation as Operation
const definedMethod = method as OpenAPIV3.HttpMethods
items.push({
type: "link",
path: getSectionId([
...(definedOperation.tags || []),
definedOperation.operationId,