diff --git a/services/web/frontend/js/features/ide-react/components/editor-and-sidebar.tsx b/services/web/frontend/js/features/ide-react/components/editor-and-sidebar.tsx index 16b51c49d0..f2bea2abbe 100644 --- a/services/web/frontend/js/features/ide-react/components/editor-and-sidebar.tsx +++ b/services/web/frontend/js/features/ide-react/components/editor-and-sidebar.tsx @@ -132,14 +132,19 @@ export function EditorAndSidebar({ [eventEmitter, openDocId, openDocWithId, rootDocId] ) + const openDocIdRef = useRef(null) + // Synchronize the file tree when openDoc or openDocId is called on the editor // manager context from elsewhere. If the file tree does change, it will // trigger the onSelect handler in this component, which will update the local // state. useEffect(() => { - debugConsole.log(`openDocId changed to ${openDocId}`) - if (openDocId !== null) { - selectEntity(openDocId) + if (openDocId !== openDocIdRef.current) { + debugConsole.log(`openDocId changed to ${openDocId}`) + openDocIdRef.current = openDocId + if (openDocId !== null) { + selectEntity(openDocId) + } } }, [openDocId, selectEntity])