diff --git a/services/web/frontend/js/features/source-editor/hooks/use-codemirror-measurement.ts b/services/web/frontend/js/features/source-editor/hooks/use-codemirror-measurement.ts index bfba8b0574..b6e8c7112d 100644 --- a/services/web/frontend/js/features/source-editor/hooks/use-codemirror-measurement.ts +++ b/services/web/frontend/js/features/source-editor/hooks/use-codemirror-measurement.ts @@ -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])