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 '
125import SelectorTitle from 'src/dataExplorer/components/SelectorTitle'
136import SearchableDropdown from 'src/shared/components/SearchableDropdown'
147
@@ -17,7 +10,6 @@ import {FluxQueryBuilderContext} from 'src/dataExplorer/context/fluxQueryBuilder
1710import { MeasurementsContext } from 'src/dataExplorer/context/measurements'
1811
1912// Types
20- import { RemoteDataState } from 'src/types'
2113import { event } from 'src/cloud/utils/reporting'
2214
2315const 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 \
2618strings, and, for any SQL users out there, a measurement is conceptually \
2719similar 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-
4021const 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
9668export default MeasurementSelector
0 commit comments