* 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
32 lines
652 B
TypeScript
32 lines
652 B
TypeScript
import { useEffect } from "react"
|
|
|
|
type UseMutationObserverProps = {
|
|
elm: Document | HTMLElement | undefined
|
|
callback: () => void
|
|
options?: {
|
|
attributes?: boolean
|
|
characterData?: boolean
|
|
childList?: boolean
|
|
subtree?: boolean
|
|
}
|
|
}
|
|
|
|
export const useMutationObserver = ({
|
|
elm,
|
|
callback,
|
|
options = {
|
|
attributes: true,
|
|
characterData: true,
|
|
childList: true,
|
|
subtree: true,
|
|
},
|
|
}: UseMutationObserverProps) => {
|
|
useEffect(() => {
|
|
if (elm) {
|
|
const observer = new MutationObserver(callback)
|
|
observer.observe(elm, options)
|
|
return () => observer.disconnect()
|
|
}
|
|
}, [callback, options])
|
|
}
|