docs: add prepare script to generate sidebar (#11894)
This commit is contained in:
@@ -1,27 +1,30 @@
|
||||
"use client"
|
||||
|
||||
import type { Area } from "@/types/openapi"
|
||||
import { capitalize, usePrevious, useSearch } from "docs-ui"
|
||||
import type { OpenAPI } from "types"
|
||||
import { capitalize, usePrevious, useSearch, useSidebar } from "docs-ui"
|
||||
import { createContext, useContext, useEffect, useMemo, useState } from "react"
|
||||
import { usePathname } from "next/navigation"
|
||||
|
||||
type AreaContextType = {
|
||||
area: Area
|
||||
prevArea: Area | undefined
|
||||
area: OpenAPI.Area
|
||||
prevArea: OpenAPI.Area | undefined
|
||||
displayedArea: string
|
||||
setArea: (value: Area) => void
|
||||
setArea: (value: OpenAPI.Area) => void
|
||||
}
|
||||
|
||||
const AreaContext = createContext<AreaContextType | null>(null)
|
||||
|
||||
type AreaProviderProps = {
|
||||
area: Area
|
||||
area: OpenAPI.Area
|
||||
children: React.ReactNode
|
||||
}
|
||||
|
||||
const AreaProvider = ({ area: passedArea, children }: AreaProviderProps) => {
|
||||
const [area, setArea] = useState<Area>(passedArea)
|
||||
const [area, setArea] = useState<OpenAPI.Area>(passedArea)
|
||||
const prevArea = usePrevious(area)
|
||||
const { defaultFilters, setDefaultFilters } = useSearch()
|
||||
const { setActivePath } = useSidebar()
|
||||
const pathname = usePathname()
|
||||
|
||||
const displayedArea = useMemo(() => {
|
||||
return capitalize(area)
|
||||
@@ -33,6 +36,10 @@ const AreaProvider = ({ area: passedArea, children }: AreaProviderProps) => {
|
||||
}
|
||||
}, [area, defaultFilters, setDefaultFilters])
|
||||
|
||||
useEffect(() => {
|
||||
setActivePath(null)
|
||||
}, [pathname])
|
||||
|
||||
return (
|
||||
<AreaContext.Provider
|
||||
value={{
|
||||
|
||||
Reference in New Issue
Block a user