mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-15 15:37:36 +00:00
Wrap the useCodeMirrorMeasurement state setter in a timeout (#16818)
GitOrigin-RevId: 9f7c12f679ab3947724cc52c63fcee198c73ae87
This commit is contained in:
parent
c443322a41
commit
373c4736e8
1 changed files with 5 additions and 2 deletions
|
@ -8,7 +8,7 @@ export default function useCodeMirrorMeasurement(
|
|||
measure: (view: EditorView) => number
|
||||
) {
|
||||
const view = useCodeMirrorViewContext()
|
||||
const [measurement, setMeasurement] = useState(measure(view))
|
||||
const [measurement, setMeasurement] = useState(() => measure(view))
|
||||
|
||||
useEventListener(
|
||||
'editor:geometry-change',
|
||||
|
@ -17,7 +17,10 @@ export default function useCodeMirrorMeasurement(
|
|||
key,
|
||||
read: () => measure(view),
|
||||
write(value) {
|
||||
setMeasurement(value)
|
||||
// wrap the React state setter in a timeout so it doesn't run inside the CodeMirror update cycle
|
||||
window.setTimeout(() => {
|
||||
setMeasurement(value)
|
||||
})
|
||||
},
|
||||
})
|
||||
}, [view, measure, key])
|
||||
|
|
Loading…
Add table
Reference in a new issue