From 4fb5dc4d07f3a4f0ea18f1c28381b70884f51b75 Mon Sep 17 00:00:00 2001 From: Jenit Jain Date: Sun, 10 Aug 2025 00:36:44 -0700 Subject: [PATCH] Add esc functionality --- web_app/frontend/src/App.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/web_app/frontend/src/App.js b/web_app/frontend/src/App.js index b202a471..7aaf90ac 100644 --- a/web_app/frontend/src/App.js +++ b/web_app/frontend/src/App.js @@ -27,6 +27,35 @@ function App() { const [isLoadingTransformedData, setIsLoadingTransformedData] = useState(false); const [transformedDataError, setTransformedDataError] = useState(null); + // Close only the topmost open modal on Escape, preserving underlying modals + useEffect(() => { + const handleKeyDown = (e) => { + if (e.key === 'Escape') { + if (showDetailModal) { + setShowDetailModal(false); + return; + } + if (showWidgetsView) { + setShowWidgetsView(false); + return; + } + if (showTransformedDataModal) { + setShowTransformedDataModal(false); + return; + } + if (showResultsModal) { + setShowResultsModal(false); + return; + } + if (showAnalysisModal) { + setShowAnalysisModal(false); + } + } + }; + window.addEventListener('keydown', handleKeyDown); + return () => window.removeEventListener('keydown', handleKeyDown); + }, [showDetailModal, showWidgetsView, showTransformedDataModal, showResultsModal, showAnalysisModal]); + useEffect(() => { checkBackendStatus(); fetchCompanies();