From 17cb2cbb774d5d4035869f382d91ccc6c8564cdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BErd=20Campbell?= Date: Wed, 11 Jan 2023 17:48:03 -0700 Subject: [PATCH] fixes FB-1873 (#2400) Co-authored-by: Kord Campbell Co-authored-by: Fletcher Haynes --- lattice/src/App/Query/QueryContainer.tsx | 41 ++++++++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/lattice/src/App/Query/QueryContainer.tsx b/lattice/src/App/Query/QueryContainer.tsx index 642ddef42..50a8b6a86 100644 --- a/lattice/src/App/Query/QueryContainer.tsx +++ b/lattice/src/App/Query/QueryContainer.tsx @@ -50,16 +50,44 @@ export const QueryContainer: FC<{}> = () => { }); const handleHTTPQueryMessages = (response) => { - setIsSQL3(true) - console.log(response.data.error); - if (response.status === 400) { + // SQL is true + setIsSQL3(true); + + // check status of result + if (response.status >= 400 && response.status < 500) { + // response had status 400-499 + streamingResults.error = response.data.error; + setErrorResult(streamingResults); + } else if (response.data.error != undefined) { + // response contained an error, but returned outside 400 range streamingResults.error = response.data.error; setErrorResult(streamingResults); } else { + // sets the history + let recentQueries = JSON.parse( + localStorage.getItem('recent-queries') || '[]' + ); + const lastQuery = localStorage.getItem('last-query'); + recentQueries.unshift(lastQuery); + recentQueries = uniqBy(recentQueries); + + if (recentQueries.length > 10) { + localStorage.setItem( + 'recent-queries', + JSON.stringify(recentQueries.slice(0, 9)) + ); + } else { + localStorage.setItem('recent-queries', JSON.stringify(recentQueries)); + } + + // stream results for display + streamingResults.roundtrip = moment.duration(moment().diff(startTime)).as('milliseconds'); streamingResults.headers = response.data.schema.fields; + streamingResults.duration = response.data["execution-time"]; streamingResults.rows = response.data.data; + setErrorResult(undefined); - setResults([streamingResults]); + setResults([streamingResults, ...results]); } setLoading(false); } @@ -81,6 +109,7 @@ export const QueryContainer: FC<{}> = () => { streamingResults.error = statusMessage; setErrorResult(streamingResults); } else { + // sets the history let recentQueries = JSON.parse( localStorage.getItem('recent-queries') || '[]' ); @@ -148,8 +177,6 @@ export const QueryContainer: FC<{}> = () => { setIsSQL3(false) handleHTTPQueryMessages(e.response); } - - }); } } @@ -173,4 +200,4 @@ export const QueryContainer: FC<{}> = () => { isSQL3={isSQL3} /> ); -}; +}; \ No newline at end of file