feat: the frontend part of mcp (#22131)
Co-authored-by: jZonG <jzongcode@gmail.com> Co-authored-by: Novice <novice12185727@gmail.com> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: Hanqing Zhao <sherry9277@gmail.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
|
||||
const useCheckVerticalScrollbar = (ref: React.RefObject<HTMLElement>) => {
|
||||
const [hasVerticalScrollbar, setHasVerticalScrollbar] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
const elem = ref.current
|
||||
if (!elem) return
|
||||
|
||||
const checkScrollbar = () => {
|
||||
setHasVerticalScrollbar(elem.scrollHeight > elem.clientHeight)
|
||||
}
|
||||
|
||||
checkScrollbar()
|
||||
|
||||
const resizeObserver = new ResizeObserver(checkScrollbar)
|
||||
resizeObserver.observe(elem)
|
||||
|
||||
const mutationObserver = new MutationObserver(checkScrollbar)
|
||||
mutationObserver.observe(elem, { childList: true, subtree: true, characterData: true })
|
||||
|
||||
return () => {
|
||||
resizeObserver.disconnect()
|
||||
mutationObserver.disconnect()
|
||||
}
|
||||
}, [ref])
|
||||
|
||||
return hasVerticalScrollbar
|
||||
}
|
||||
|
||||
export default useCheckVerticalScrollbar
|
Reference in New Issue
Block a user