fix: extract app bar into layout slot

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
Tilman Vatteroth 2023-07-02 18:54:09 +02:00
parent 18a1e79d9f
commit b3fb1bbf30
35 changed files with 258 additions and 207 deletions

View file

@ -5,7 +5,7 @@
*/
import useResizeObserver from '@react-hook/resize-observer'
import type { RefObject } from 'react'
import { useEffect, useState } from 'react'
import { useEffect, useRef, useState } from 'react'
/**
* Monitors the height of the referenced {@link HTMLElement} and executes the callback on change.
@ -18,6 +18,7 @@ export const useOnHeightChange = (
onHeightChange: undefined | ((value: number) => void)
): void => {
const [rendererSize, setRendererSize] = useState<number>(0)
const lastPostedSize = useRef<number>(0)
useResizeObserver(elementRef, (entry) => {
setRendererSize(entry.contentRect.height)
})
@ -29,6 +30,10 @@ export const useOnHeightChange = (
setRendererSize(value)
}, [elementRef])
useEffect(() => {
if (lastPostedSize.current === rendererSize) {
return
}
lastPostedSize.current = rendererSize
onHeightChange?.(rendererSize + 1)
}, [rendererSize, onHeightChange])
})
}