* 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
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
"use client"
|
|
|
|
import { createContext, useEffect } from "react"
|
|
import { capitalize, useSidebar } from "docs-ui"
|
|
import { useArea } from "./area"
|
|
import { SidebarItemLink } from "types"
|
|
|
|
const PageTitleContext = createContext(null)
|
|
|
|
type PageTitleProviderProps = {
|
|
children: React.ReactNode
|
|
}
|
|
|
|
const PageTitleProvider = ({ children }: PageTitleProviderProps) => {
|
|
const { activePath, getActiveItem } = useSidebar()
|
|
const { area } = useArea()
|
|
|
|
useEffect(() => {
|
|
const titleSuffix = `Medusa ${capitalize(area)} API Reference`
|
|
|
|
if (!activePath?.length) {
|
|
document.title = titleSuffix
|
|
} else {
|
|
const activeItem = getActiveItem()
|
|
if (activeItem?.path === activePath) {
|
|
document.title = `${activeItem?.title} - ${titleSuffix}`
|
|
} else {
|
|
// find the child that matches the active path
|
|
const item = activeItem?.children?.find(
|
|
(i) => i.type === "link" && i.path === activePath
|
|
) as SidebarItemLink
|
|
if (item) {
|
|
document.title = `${item.title} - ${titleSuffix}`
|
|
}
|
|
}
|
|
}
|
|
}, [activePath, area, getActiveItem])
|
|
|
|
return (
|
|
<PageTitleContext.Provider value={null}>
|
|
{children}
|
|
</PageTitleContext.Provider>
|
|
)
|
|
}
|
|
|
|
export default PageTitleProvider
|