* docs: migrate ui docs to docs universe * created yarn workspace * added eslint and tsconfig configurations * fix eslint configurations * fixed eslint configurations * shared tailwind configurations * added shared ui package * added more shared components * migrating more components * made details components shared * move InlineCode component * moved InputText * moved Loading component * Moved Modal component * moved Select components * Moved Tooltip component * moved Search components * moved ColorMode provider * Moved Notification components and providers * used icons package * use UI colors in api-reference * moved Navbar component * used Navbar and Search in UI docs * added Feedback to UI docs * general enhancements * fix color mode * added copy colors file from ui-preset * added features and enhancements to UI docs * move Sidebar component and provider * general fixes and preparations for deployment * update docusaurus version * adjusted versions * fix output directory * remove rootDirectory property * fix yarn.lock * moved code component * added vale for all docs MD and MDX * fix tests * fix vale error * fix deployment errors * change ignore commands * add output directory * fix docs test * general fixes * content fixes * fix announcement script * added changeset * fix vale checks * added nofilter option * fix vale error
44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
"use client"
|
|
|
|
import { createContext, useEffect } from "react"
|
|
import { capitalize, useSidebar } from "docs-ui"
|
|
import { useArea } from "./area"
|
|
|
|
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.path === activePath)
|
|
if (item) {
|
|
document.title = `${item.title} - ${titleSuffix}`
|
|
}
|
|
}
|
|
}
|
|
}, [activePath, area, getActiveItem])
|
|
|
|
return (
|
|
<PageTitleContext.Provider value={null}>
|
|
{children}
|
|
</PageTitleContext.Provider>
|
|
)
|
|
}
|
|
|
|
export default PageTitleProvider
|