Skip to content

Commit cb71d3b

Browse files
authored
feat(webui): Disable guided inputs while query running; Replace redundant "from" state with "dataset" state from native UI. (#1465)
1 parent 6803e83 commit cb71d3b

File tree

11 files changed

+37
-30
lines changed

11 files changed

+37
-30
lines changed

components/webui/client/src/pages/SearchPage/SearchControls/Presto/GuidedControls/From.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import InputLabel from "../../../../../components/InputLabel";
2-
import usePrestoSearchState from "../../../SearchState/Presto";
32
import DatasetSelect from "../../Dataset/DatasetSelect";
43
import guidedGrid from "./index.module.css";
54

@@ -10,19 +9,14 @@ import guidedGrid from "./index.module.css";
109
* @return
1110
*/
1211
const From = () => {
13-
const from = usePrestoSearchState((state) => state.from);
14-
const updateFrom = usePrestoSearchState((state) => state.updateFrom);
15-
1612
return (
1713
<div className={guidedGrid["from"]}>
1814
<InputLabel>FROM</InputLabel>
1915
<DatasetSelect
20-
value={from}
2116
className={
2217
`${guidedGrid["noLeftBorderRadiusSelect"]} ${
2318
guidedGrid["widthSelect"]}`
24-
}
25-
onChange={updateFrom}/>
19+
}/>
2620
</div>
2721
);
2822
};

components/webui/client/src/pages/SearchPage/SearchControls/Presto/GuidedControls/OrderBy.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import InputLabel from "../../../../../components/InputLabel";
22
import SqlInput from "../../../../../components/SqlInput";
3+
import useSearchStore from "../../../SearchState/index";
34
import usePrestoSearchState from "../../../SearchState/Presto";
5+
import {SEARCH_UI_STATE} from "../../../SearchState/typings";
46
import guidedGrid from "./index.module.css";
57

68

@@ -12,13 +14,16 @@ import guidedGrid from "./index.module.css";
1214
const OrderBy = () => {
1315
const orderBy = usePrestoSearchState((state) => state.orderBy);
1416
const updateOrderBy = usePrestoSearchState((state) => state.updateOrderBy);
17+
const searchUiState = useSearchStore((state) => state.searchUiState);
18+
const disabled = searchUiState === SEARCH_UI_STATE.QUERY_ID_PENDING ||
19+
searchUiState === SEARCH_UI_STATE.QUERYING;
1520

1621
return (
1722
<div className={guidedGrid["order"]}>
1823
<InputLabel>ORDER BY</InputLabel>
1924
<SqlInput
2025
className={guidedGrid["noLeftBorderRadius"] || ""}
21-
disabled={false}
26+
disabled={disabled}
2227
value={orderBy}
2328
onChange={(value) => {
2429
updateOrderBy(value || "");

components/webui/client/src/pages/SearchPage/SearchControls/Presto/GuidedControls/Select.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import InputLabel from "../../../../../components/InputLabel";
22
import SqlInput from "../../../../../components/SqlInput";
3+
import useSearchStore from "../../../SearchState/index";
34
import usePrestoSearchState from "../../../SearchState/Presto";
5+
import {SEARCH_UI_STATE} from "../../../SearchState/typings";
46
import guidedGrid from "./index.module.css";
57

68

@@ -12,13 +14,16 @@ import guidedGrid from "./index.module.css";
1214
const Select = () => {
1315
const select = usePrestoSearchState((state) => state.select);
1416
const updateSelect = usePrestoSearchState((state) => state.updateSelect);
17+
const searchUiState = useSearchStore((state) => state.searchUiState);
18+
const disabled = searchUiState === SEARCH_UI_STATE.QUERY_ID_PENDING ||
19+
searchUiState === SEARCH_UI_STATE.QUERYING;
1520

1621
return (
1722
<div className={guidedGrid["select"]}>
1823
<InputLabel>SELECT</InputLabel>
1924
<SqlInput
2025
className={guidedGrid["noLeftBorderRadius"] || ""}
21-
disabled={false}
26+
disabled={disabled}
2227
value={select}
2328
onChange={(value) => {
2429
updateSelect(value || "");

components/webui/client/src/pages/SearchPage/SearchControls/Presto/GuidedControls/TimestampKey/index.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import InputLabel from "../../../../../../components/InputLabel";
2-
import usePrestoSearchState from "../../../../SearchState/Presto";
32
import guidedGrid from "../index.module.css";
43
import TimestampKeySelect from "./TimestampKeySelect";
54

@@ -10,19 +9,14 @@ import TimestampKeySelect from "./TimestampKeySelect";
109
* @return
1110
*/
1211
const TimestampKey = () => {
13-
const timestampKey = usePrestoSearchState((state) => state.timestampKey);
14-
const updateTimestampKey = usePrestoSearchState((state) => state.updateTimestampKey);
15-
1612
return (
1713
<div className={guidedGrid["timestampKey"]}>
1814
<InputLabel>TIME KEY</InputLabel>
1915
<TimestampKeySelect
20-
value={timestampKey}
2116
className={
2217
`${guidedGrid["noLeftBorderRadiusSelect"]} ${
2318
guidedGrid["widthSelect"]}`
24-
}
25-
onChange={updateTimestampKey}/>
19+
}/>
2620
</div>
2721
);
2822
};

components/webui/client/src/pages/SearchPage/SearchControls/Presto/GuidedControls/Where.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import InputLabel from "../../../../../components/InputLabel";
22
import SqlInput from "../../../../../components/SqlInput";
3+
import useSearchStore from "../../../SearchState/index";
34
import usePrestoSearchState from "../../../SearchState/Presto";
5+
import {SEARCH_UI_STATE} from "../../../SearchState/typings";
46
import guidedGrid from "./index.module.css";
57

68

@@ -12,13 +14,16 @@ import guidedGrid from "./index.module.css";
1214
const Where = () => {
1315
const where = usePrestoSearchState((state) => state.where);
1416
const updateWhere = usePrestoSearchState((state) => state.updateWhere);
17+
const searchUiState = useSearchStore((state) => state.searchUiState);
18+
const disabled = searchUiState === SEARCH_UI_STATE.QUERY_ID_PENDING ||
19+
searchUiState === SEARCH_UI_STATE.QUERYING;
1520

1621
return (
1722
<div className={guidedGrid["where"]}>
1823
<InputLabel>WHERE</InputLabel>
1924
<SqlInput
2025
className={guidedGrid["noLeftBorderRadius"] || ""}
21-
disabled={false}
26+
disabled={disabled}
2227
value={where}
2328
onChange={(value) => {
2429
updateWhere(value || "");

components/webui/client/src/pages/SearchPage/SearchControls/Presto/GuidedControls/index.module.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
}
3232

3333
.widthSelect {
34-
width: 100%;
34+
width: 0;
35+
flex-grow: 1;
3536
}
3637

3738
.noLeftBorderRadiusSelect :global(.ant-select-selector) {

components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlInterfaceButton/FreeformButton/index.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import {EditOutlined} from "@ant-design/icons";
22
import {Button} from "antd";
33

4+
import useSearchStore from "../../../../SearchState/index";
45
import usePrestoSearchState from "../../../../SearchState/Presto";
56
import {PRESTO_SQL_INTERFACE} from "../../../../SearchState/Presto/typings";
7+
import {SEARCH_UI_STATE} from "../../../../SearchState/typings";
68

79

810
/**
@@ -12,6 +14,9 @@ import {PRESTO_SQL_INTERFACE} from "../../../../SearchState/Presto/typings";
1214
*/
1315
const FreeformButton = () => {
1416
const setSqlInterface = usePrestoSearchState((state) => state.setSqlInterface);
17+
const searchUiState = useSearchStore((state) => state.searchUiState);
18+
const disabled = searchUiState === SEARCH_UI_STATE.QUERY_ID_PENDING ||
19+
searchUiState === SEARCH_UI_STATE.QUERYING;
1520

1621
const handleClick = () => {
1722
setSqlInterface(PRESTO_SQL_INTERFACE.FREEFORM);
@@ -21,6 +26,7 @@ const FreeformButton = () => {
2126
<Button
2227
block={true}
2328
color={"default"}
29+
disabled={disabled}
2430
icon={<EditOutlined/>}
2531
size={"middle"}
2632
variant={"filled"}

components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlInterfaceButton/GuidedButton/index.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import {AppstoreOutlined} from "@ant-design/icons";
22
import {Button} from "antd";
33

4+
import useSearchStore from "../../../../SearchState/index";
45
import usePrestoSearchState from "../../../../SearchState/Presto";
56
import {PRESTO_SQL_INTERFACE} from "../../../../SearchState/Presto/typings";
7+
import {SEARCH_UI_STATE} from "../../../../SearchState/typings";
68

79

810
/**
@@ -12,6 +14,9 @@ import {PRESTO_SQL_INTERFACE} from "../../../../SearchState/Presto/typings";
1214
*/
1315
const GuidedButton = () => {
1416
const setSqlInterface = usePrestoSearchState((state) => state.setSqlInterface);
17+
const searchUiState = useSearchStore((state) => state.searchUiState);
18+
const disabled = searchUiState === SEARCH_UI_STATE.QUERY_ID_PENDING ||
19+
searchUiState === SEARCH_UI_STATE.QUERYING;
1520

1621
const handleClick = () => {
1722
setSqlInterface(PRESTO_SQL_INTERFACE.GUIDED);
@@ -21,6 +26,7 @@ const GuidedButton = () => {
2126
<Button
2227
block={true}
2328
color={"default"}
29+
disabled={disabled}
2430
icon={<AppstoreOutlined/>}
2531
size={"middle"}
2632
variant={"filled"}

components/webui/client/src/pages/SearchPage/SearchControls/Presto/SqlSearchButton/RunButton/GuidedRunButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ const GuidedRunButton = () => {
3434
const updateTimelineConfig = useSearchStore((state) => state.updateTimelineConfig);
3535
const timeRangeOption = useSearchStore((state) => state.timeRangeOption);
3636
const timeRange = useSearchStore((state) => state.timeRange);
37+
const {selectDataset: from} = useSearchStore.getState();
3738

3839
const select = usePrestoSearchState((state) => state.select);
39-
const from = usePrestoSearchState((state) => state.from);
4040
const timestampKey = usePrestoSearchState((state) => state.timestampKey);
4141
const updateCachedGuidedSearchQueryString =
4242
usePrestoSearchState((state) => state.updateCachedGuidedSearchQueryString);

components/webui/client/src/pages/SearchPage/SearchControls/Presto/presto-guided-search-requests.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ const handlePrestoGuidedClearResults = () => {
6666
*/
6767
const buildPrestoGuidedQueries = (timeRange: [Dayjs, Dayjs]) => {
6868
const [startTimestamp, endTimestamp] = timeRange;
69-
const {select, from, where, orderBy, timestampKey} = usePrestoSearchState.getState();
69+
const {select, where, orderBy, timestampKey} = usePrestoSearchState.getState();
70+
const {selectDataset: from} = useSearchStore.getState();
7071

7172
if (null === from) {
7273
throw new Error("Cannot build guided query: from input is missing");

0 commit comments

Comments
 (0)