From 463962a58b709d7e713f37efaacced8b7e342677 Mon Sep 17 00:00:00 2001 From: "JUST.in DO IT" Date: Wed, 27 Sep 2023 08:25:46 -0700 Subject: [PATCH] fix(sqllab): misplaced limit warning alert (#25306) --- .../src/SqlLab/components/ResultSet/index.tsx | 169 ++++++++++-------- .../src/SqlLab/reducers/sqlLab.js | 6 +- 2 files changed, 97 insertions(+), 78 deletions(-) diff --git a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx index f1c48531f0..e16fc569e6 100644 --- a/superset-frontend/src/SqlLab/components/ResultSet/index.tsx +++ b/superset-frontend/src/SqlLab/components/ResultSet/index.tsx @@ -301,7 +301,7 @@ const ResultSet = ({ return
; }; - const renderRowsReturned = () => { + const renderRowsReturned = (alertMessage: boolean) => { const { results, rows, queryLimit, limitingFactor } = query; let limitMessage = ''; const limitReached = results?.displayLimitReached; @@ -353,59 +353,70 @@ const ResultSet = ({ const tooltipText = `${rowsReturnedMessage}. ${limitMessage}`; + if (alertMessage) { + return ( + <> + {!limitReached && shouldUseDefaultDropdownAlert && ( +
+ setAlertIsOpen(false)} + description={t( + 'The number of rows displayed is limited to %(rows)d by the dropdown.', + { rows }, + )} + /> +
+ )} + {limitReached && ( +
+ setAlertIsOpen(false)} + message={t('%(rows)d rows returned', { rows: rowsCount })} + description={ + isAdmin + ? displayMaxRowsReachedMessage.withAdmin + : displayMaxRowsReachedMessage.withoutAdmin + } + /> +
+ )} + + ); + } + const showRowsReturned = + showSqlInline || (!limitReached && !shouldUseDefaultDropdownAlert); + return ( - - {!limitReached && !shouldUseDefaultDropdownAlert && ( - - - + + + )} - {!limitReached && shouldUseDefaultDropdownAlert && ( -
- setAlertIsOpen(false)} - description={t( - 'The number of rows displayed is limited to %(rows)d by the dropdown.', - { rows }, - )} - /> -
- )} - {limitReached && ( -
- setAlertIsOpen(false)} - message={t('%(rows)d rows returned', { rows: rowsCount })} - description={ - isAdmin - ? displayMaxRowsReachedMessage.withAdmin - : displayMaxRowsReachedMessage.withoutAdmin - } - /> -
- )} - + ); }; @@ -531,35 +542,39 @@ const ResultSet = ({ {renderControls()} {showSql && showSqlInline ? ( -
- +
- {sql} - - {renderRowsReturned()} -
+ + {sql} + + {renderRowsReturned(false)} +
+ {renderRowsReturned(true)} + ) : ( <> - {renderRowsReturned()} + {renderRowsReturned(false)} + {renderRowsReturned(true)} {sql} )} diff --git a/superset-frontend/src/SqlLab/reducers/sqlLab.js b/superset-frontend/src/SqlLab/reducers/sqlLab.js index 5b71a24036..4d27836da1 100644 --- a/superset-frontend/src/SqlLab/reducers/sqlLab.js +++ b/superset-frontend/src/SqlLab/reducers/sqlLab.js @@ -637,7 +637,11 @@ export default function sqlLabReducer(state = {}, action) { // when it started fetching or finished rendering results state: currentState === QueryState.SUCCESS && - [QueryState.FETCHING, QueryState.SUCCESS].includes(prevState) + [ + QueryState.FETCHING, + QueryState.SUCCESS, + QueryState.RUNNING, + ].includes(prevState) ? prevState : currentState, };