Skip to content

Commit 11b3a8a

Browse files
authored
feat: add loader to the measurement selector (#5100)
1 parent 50c414a commit 11b3a8a

File tree

3 files changed

+28
-56
lines changed

3 files changed

+28
-56
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@
164164
"dependencies": {
165165
"@codingame/monaco-jsonrpc": "^0.3.1",
166166
"@docsearch/react": "^3.0.0-alpha.37",
167-
"@influxdata/clockface": "^4.7.4",
167+
"@influxdata/clockface": "^4.8.0",
168168
"@influxdata/flux-lsp-browser": "0.8.21",
169169
"@influxdata/giraffe": "^2.32.0",
170170
"@influxdata/influxdb-templates": "0.9.0",
Lines changed: 23 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
1-
import React, {
2-
FC,
3-
useCallback,
4-
useContext,
5-
useEffect,
6-
useMemo,
7-
useState,
8-
} from 'react'
1+
import React, {FC, useCallback, useContext, useEffect, useState} from 'react'
92

103
// Components
11-
import {ComponentStatus} from '@influxdata/clockface'
4+
import {toComponentStatus} from 'src/shared/utils/toComponentStatus'
125
import SelectorTitle from 'src/dataExplorer/components/SelectorTitle'
136
import SearchableDropdown from 'src/shared/components/SearchableDropdown'
147

@@ -17,7 +10,6 @@ import {FluxQueryBuilderContext} from 'src/dataExplorer/context/fluxQueryBuilder
1710
import {MeasurementsContext} from 'src/dataExplorer/context/measurements'
1811

1912
// Types
20-
import {RemoteDataState} from 'src/types'
2113
import {event} from 'src/cloud/utils/reporting'
2214

2315
const MEASUREMENT_TOOLTIP = `The measurement acts as a container for tags, \
@@ -26,17 +18,6 @@ the data that are stored in the associated fields. Measurement names are \
2618
strings, and, for any SQL users out there, a measurement is conceptually \
2719
similar to a table.`
2820

29-
const convertStatus = (remoteDataState: RemoteDataState): ComponentStatus => {
30-
switch (remoteDataState) {
31-
case RemoteDataState.Error:
32-
return ComponentStatus.Error
33-
case RemoteDataState.Loading:
34-
return ComponentStatus.Loading
35-
default:
36-
return ComponentStatus.Default
37-
}
38-
}
39-
4021
const MeasurementSelector: FC = () => {
4122
const {selectedBucket, selectedMeasurement, selectMeasurement} = useContext(
4223
FluxQueryBuilderContext
@@ -60,37 +41,28 @@ const MeasurementSelector: FC = () => {
6041
setSearchTerm(value)
6142
}
6243

63-
return useMemo(() => {
64-
if (!selectedBucket) {
65-
return null
66-
}
44+
if (!selectedBucket) {
45+
return null
46+
}
6747

68-
return (
69-
<div>
70-
<SelectorTitle title="Measurement" info={MEASUREMENT_TOOLTIP} />
71-
<SearchableDropdown
72-
searchTerm={searchTerm}
73-
searchPlaceholder="Search measurements"
74-
selectedOption={selectedMeasurement || 'Select measurement...'}
75-
onSelect={handleSelect}
76-
onChangeSearchTerm={handleChangeSearchTerm}
77-
options={measurements}
78-
buttonStatus={convertStatus(loading)}
79-
testID="measurement-selector--dropdown"
80-
buttonTestID="measurement-selector--dropdown-button"
81-
menuTestID="measurement-selector--dropdown--menu"
82-
emptyText="No Measurements Found"
83-
/>
84-
</div>
85-
)
86-
}, [
87-
selectedBucket,
88-
selectedMeasurement,
89-
measurements,
90-
loading,
91-
searchTerm,
92-
handleSelect,
93-
])
48+
return (
49+
<div>
50+
<SelectorTitle title="Measurement" info={MEASUREMENT_TOOLTIP} />
51+
<SearchableDropdown
52+
searchTerm={searchTerm}
53+
searchPlaceholder="Search measurements"
54+
selectedOption={selectedMeasurement || 'Select measurement...'}
55+
onSelect={handleSelect}
56+
onChangeSearchTerm={handleChangeSearchTerm}
57+
options={measurements}
58+
buttonStatus={toComponentStatus(loading)}
59+
testID="measurement-selector--dropdown"
60+
buttonTestID="measurement-selector--dropdown-button"
61+
menuTestID="measurement-selector--dropdown--menu"
62+
emptyText="No Measurements Found"
63+
/>
64+
</div>
65+
)
9466
}
9567

9668
export default MeasurementSelector

yarn.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1458,10 +1458,10 @@
14581458
gud "^1.0.0"
14591459
warning "^4.0.3"
14601460

1461-
"@influxdata/clockface@^4.7.4":
1462-
version "4.7.4"
1463-
resolved "https://registry.yarnpkg.com/@influxdata/clockface/-/clockface-4.7.4.tgz#df5e4323121b7f0e12ddc9cf04c0a869fa635b80"
1464-
integrity sha512-4Mo+qGOqqZST+udOMwCP6pFM9fdoGrO4mxa0RJPLzvfjoGbyZzhxUbSDs4hWJwIzwPxGBAIykAfNwoc39skXHQ==
1461+
"@influxdata/clockface@^4.8.0":
1462+
version "4.8.0"
1463+
resolved "https://registry.yarnpkg.com/@influxdata/clockface/-/clockface-4.8.0.tgz#40882117dc95888316c0ec51603588d539e591f6"
1464+
integrity sha512-e4NI7k+evCNMCs/Hm/ci7hMVhY1iPIojPMkB8jMEY2SPB7YtTvFIKgtBTDypUNXXnZ/d/djuB8bvVJ13JQJWqA==
14651465
dependencies:
14661466
"@types/react-window" "^1.8.5"
14671467
react-window "^1.8.7"

0 commit comments

Comments
 (0)