mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-24 21:12:38 -04:00
4e74fb2694
* Ordering of log entries in the new errors UI * Don't show the expand-collapse widget when not needed; smaller font size in the raw log output * Expose log actions in the log pane. * Use "This project" instead of "Your project" in the new errors UI * Better handling of long log messages; left-ellipsize the file/line number button * Make log location more button-like; add tooltip when needed. * Add a PDF expand button to the toolbar. * Add a stop compilation button to the new compile UI * Use aria-label for button accessible text; improve handling of long filenames in the log location button * Set max-height correctly for the logs pane dropdown * Avoid changing raw logs sizing when expanded and collapsed * Add comment on the solution for right-to-left text and ellipsis * Improve logs pane actions GitOrigin-RevId: 4098d77a9ee6d333644906876b9ff27035b79319
39 lines
966 B
JavaScript
39 lines
966 B
JavaScript
import { useLayoutEffect, useRef } from 'react'
|
|
|
|
function useResizeObserver(observedElement, observedData, callback) {
|
|
const resizeObserver = useRef()
|
|
|
|
function observe() {
|
|
resizeObserver.current = new ResizeObserver(function(elementsObserved) {
|
|
callback(elementsObserved[0])
|
|
})
|
|
}
|
|
|
|
function unobserve(observedCurrent) {
|
|
resizeObserver.current.unobserve(observedCurrent)
|
|
}
|
|
|
|
useLayoutEffect(
|
|
() => {
|
|
if ('ResizeObserver' in window) {
|
|
const observedCurrent = observedElement && observedElement.current
|
|
if (observedCurrent) {
|
|
observe(observedElement.current)
|
|
}
|
|
|
|
if (resizeObserver.current && observedCurrent) {
|
|
resizeObserver.current.observe(observedCurrent)
|
|
}
|
|
|
|
return () => {
|
|
if (observedCurrent) {
|
|
unobserve(observedCurrent)
|
|
}
|
|
}
|
|
}
|
|
},
|
|
[observedElement, observedData]
|
|
)
|
|
}
|
|
|
|
export default useResizeObserver
|