From 281d637674ff8c75faea99ae5fc84d3ef6576dce Mon Sep 17 00:00:00 2001 From: Kamil Gabryjelski Date: Thu, 27 May 2021 17:13:17 +0200 Subject: [PATCH] Don't run query when control panel has errors (#14687) --- .../components/DataTablesPane/index.tsx | 25 ++++++++++++++++++- .../explore/components/ExploreChartPanel.jsx | 1 + 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/superset-frontend/src/explore/components/DataTablesPane/index.tsx b/superset-frontend/src/explore/components/DataTablesPane/index.tsx index 389e0213c..f2b33f28e 100644 --- a/superset-frontend/src/explore/components/DataTablesPane/index.tsx +++ b/superset-frontend/src/explore/components/DataTablesPane/index.tsx @@ -107,12 +107,14 @@ export const DataTablesPane = ({ onCollapseChange, chartStatus, ownState, + errorMessage, }: { queryFormData: Record; tableSectionHeight: number; chartStatus: string; ownState?: JsonObject; onCollapseChange: (openPanelName: string) => void; + errorMessage?: JSX.Element; }) => { const [data, setData] = useState<{ [RESULT_TYPES.results]?: Record[]; @@ -196,6 +198,17 @@ export const DataTablesPane = ({ useEffect(() => { if (panelOpen && isRequestPending[RESULT_TYPES.results]) { + if (errorMessage) { + setIsRequestPending(prevState => ({ + ...prevState, + [RESULT_TYPES.results]: false, + })); + setIsLoading(prevIsLoading => ({ + ...prevIsLoading, + [RESULT_TYPES.results]: false, + })); + return; + } if (chartStatus === 'loading') { setIsLoading(prevIsLoading => ({ ...prevIsLoading, @@ -220,7 +233,14 @@ export const DataTablesPane = ({ })); getData(RESULT_TYPES.samples); } - }, [panelOpen, isRequestPending, getData, activeTabKey, chartStatus]); + }, [ + panelOpen, + isRequestPending, + getData, + activeTabKey, + chartStatus, + errorMessage, + ]); const filteredData = { [RESULT_TYPES.results]: useFilteredTableData( @@ -262,6 +282,9 @@ export const DataTablesPane = ({ /> ); } + if (errorMessage) { + return
{errorMessage}
; + } return null; }; diff --git a/superset-frontend/src/explore/components/ExploreChartPanel.jsx b/superset-frontend/src/explore/components/ExploreChartPanel.jsx index d881f6639..3bbd1512a 100644 --- a/superset-frontend/src/explore/components/ExploreChartPanel.jsx +++ b/superset-frontend/src/explore/components/ExploreChartPanel.jsx @@ -285,6 +285,7 @@ const ExploreChartPanel = props => { tableSectionHeight={tableSectionHeight} onCollapseChange={onCollapseChange} chartStatus={props.chart.chartStatus} + errorMessage={props.errorMessage} /> )}