diff --git a/components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlSearchButton/RunButton/GuidedRunButton.tsx b/components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlSearchButton/RunButton/GuidedRunButton.tsx index 7122e45857..25ceaec7f5 100644 --- a/components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlSearchButton/RunButton/GuidedRunButton.tsx +++ b/components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlSearchButton/RunButton/GuidedRunButton.tsx @@ -38,6 +38,8 @@ const GuidedRunButton = () => { const select = usePrestoSearchState((state) => state.select); const from = usePrestoSearchState((state) => state.from); const timestampKey = usePrestoSearchState((state) => state.timestampKey); + const updateCachedGuidedSearchQueryString = + usePrestoSearchState((state) => state.updateCachedGuidedSearchQueryString); const [messageApi, contextHolder] = message.useMessage(); @@ -69,6 +71,7 @@ const GuidedRunButton = () => { const {searchQueryString, timelineQueryString} = buildPrestoGuidedQueries(newTimeRange); handlePrestoGuidedQuerySubmit(searchQueryString, timelineQueryString); + updateCachedGuidedSearchQueryString(searchQueryString); const newTimelineConfig = computeTimelineConfig(newTimeRange); updateTimelineConfig(newTimelineConfig); }, [ @@ -77,6 +80,7 @@ const GuidedRunButton = () => { timeRangeOption, updateTimeRange, updateTimelineConfig, + updateCachedGuidedSearchQueryString, ]); return ( diff --git a/components/webui/client/src/pages/SearchPage/SearchControls/Presto/presto-guided-search-requests.ts b/components/webui/client/src/pages/SearchPage/SearchControls/Presto/presto-guided-search-requests.ts index f493394c27..68aa936af9 100644 --- a/components/webui/client/src/pages/SearchPage/SearchControls/Presto/presto-guided-search-requests.ts +++ b/components/webui/client/src/pages/SearchPage/SearchControls/Presto/presto-guided-search-requests.ts @@ -119,6 +119,10 @@ const handlePrestoGuidedQuerySubmit = (searchQueryString: string, timelineQueryS searchUiState, } = useSearchStore.getState(); + const { + updateErrorMsg, updateErrorName, + } = usePrestoSearchState.getState(); + // User should NOT be able to submit a new query while an existing query is in progress. if ( searchUiState !== SEARCH_UI_STATE.DEFAULT && @@ -137,6 +141,9 @@ const handlePrestoGuidedQuerySubmit = (searchQueryString: string, timelineQueryS updateNumSearchResultsMetadata(SEARCH_STATE_DEFAULT.numSearchResultsMetadata); updateSearchUiState(SEARCH_UI_STATE.QUERY_ID_PENDING); + updateErrorMsg(null); + updateErrorName(null); + submitQuery({queryString: searchQueryString}) .then((result) => { const {searchJobId} = result.data; diff --git a/components/webui/client/src/pages/SearchPage/SearchControls/QueryStatus/OpenQueryDrawerButton.tsx b/components/webui/client/src/pages/SearchPage/SearchControls/QueryStatus/OpenQueryDrawerButton.tsx new file mode 100644 index 0000000000..661aad29ce --- /dev/null +++ b/components/webui/client/src/pages/SearchPage/SearchControls/QueryStatus/OpenQueryDrawerButton.tsx @@ -0,0 +1,47 @@ +import {EyeOutlined} from "@ant-design/icons"; +import { + Button, + theme, + Tooltip, +} from "antd"; + +import useSearchStore from "../../SearchState"; +import usePrestoSearchState from "../../SearchState/Presto"; +import {SEARCH_UI_STATE} from "../../SearchState/typings"; + + +/** + * Renders a button that opens the query drawer. + * + * @return + */ +const OpenQueryDrawerButton = () => { + const {token} = theme.useToken(); + const updateQueryDrawerOpen = usePrestoSearchState((s) => s.updateQueryDrawerOpen); + const searchUiState = useSearchStore((s) => s.searchUiState); + + const tooltipText = + searchUiState === SEARCH_UI_STATE.FAILED ? + "See modified query and error" : + "See modified query"; + + return ( + +