@@ -49,16 +49,12 @@ import {
49
49
} from '../../../../server/utils/helpers' ;
50
50
import { CoreServicesContext } from '../../../components/CoreServices/CoreServices' ;
51
51
import { CoreStart , MountPoint } from '../../../../../../src/core/public' ;
52
- import { DataSourceManagementPluginSetup , DataSourceSelectableConfig } from '../../../../../../src/plugins/data_source_management/public' ;
53
- import { getNotifications , getSavedObjectsClient } from '../../../services' ;
52
+ import { DataSourceSelectableConfig } from '../../../../../../src/plugins/data_source_management/public' ;
53
+ import { getDataSourceManagementPlugin , getNotifications , getSavedObjectsClient } from '../../../services' ;
54
54
import { RouteComponentProps } from 'react-router-dom' ;
55
55
56
- export interface DashboardOverviewRouterParams {
57
- dataSourceId : string ;
58
- }
59
-
60
- interface OverviewProps extends RouteComponentProps < DashboardOverviewRouterParams > {
61
- dataSourceManagement : DataSourceManagementPluginSetup ;
56
+ interface OverviewProps extends RouteComponentProps {
57
+ dataSourceEnabled : boolean ;
62
58
setActionMenu : ( menuMount : MountPoint | undefined ) => void ;
63
59
}
64
60
@@ -132,12 +128,18 @@ export function DashboardOverview(props: OverviewProps) {
132
128
setAllDetectorStatesSelected ( isEmpty ( selectedStates ) ) ;
133
129
} ;
134
130
135
- const handleDataSourceChange = ( e ) => {
136
- const dataConnectionId = e [ 0 ] ? e [ 0 ] . id : undefined ;
137
- setMDSOverviewState ( {
138
- queryParams : dataConnectionId ,
139
- selectedDataSourceId : dataConnectionId ,
140
- } ) ;
131
+ const handleDataSourceChange = ( [ event ] ) => {
132
+ const dataSourceId = event ?. id ;
133
+ if ( ! dataSourceId ) {
134
+ getNotifications ( ) . toasts . addDanger (
135
+ prettifyErrorMessage ( 'Unable to set data source.' )
136
+ ) ;
137
+ } else {
138
+ setMDSOverviewState ( {
139
+ queryParams : dataSourceId ,
140
+ selectedDataSourceId : dataSourceId ,
141
+ } ) ;
142
+ }
141
143
}
142
144
143
145
const opensearchState = useSelector ( ( state : AppState ) => state . opensearch ) ;
@@ -190,8 +192,8 @@ export function DashboardOverview(props: OverviewProps) {
190
192
191
193
const intializeDetectors = async ( ) => {
192
194
dispatch ( getDetectorList ( getAllDetectorsQueryParamsWithDataSourceId ( MDSOverviewState . selectedDataSourceId ) ) ) ;
193
- dispatch ( getIndices ( '' ) ) ;
194
- dispatch ( getAliases ( '' ) ) ;
195
+ dispatch ( getIndices ( '' , MDSOverviewState . selectedDataSourceId ) ) ;
196
+ dispatch ( getAliases ( '' , MDSOverviewState . selectedDataSourceId ) ) ;
195
197
} ;
196
198
197
199
useEffect ( ( ) => {
@@ -203,7 +205,9 @@ export function DashboardOverview(props: OverviewProps) {
203
205
...location ,
204
206
search : queryString . stringify ( updatedParams ) ,
205
207
} )
206
- intializeDetectors ( ) ;
208
+ if ( props . dataSourceEnabled ? MDSOverviewState . selectedDataSourceId : true ) {
209
+ intializeDetectors ( ) ;
210
+ }
207
211
} , [ MDSOverviewState ] ) ;
208
212
209
213
useEffect ( ( ) => {
@@ -238,14 +242,15 @@ export function DashboardOverview(props: OverviewProps) {
238
242
} , [ selectedDetectorsName , selectedIndices , selectedDetectorStates ] ) ;
239
243
240
244
const DataSourceMenu =
241
- props . dataSourceManagement . ui . getDataSourceMenu < DataSourceSelectableConfig > ( ) ;
245
+ getDataSourceManagementPlugin ( ) . ui . getDataSourceMenu < DataSourceSelectableConfig > ( ) ;
242
246
const renderDataSourceComponent = useMemo ( ( ) => {
243
247
return (
244
248
< DataSourceMenu
245
249
setMenuMountPoint = { props . setActionMenu }
246
250
componentType = { 'DataSourceSelectable' }
247
251
componentConfig = { {
248
252
fullWidth : false ,
253
+ activeOption :[ { id : MDSOverviewState . selectedDataSourceId } ] ,
249
254
savedObjects : getSavedObjectsClient ( ) ,
250
255
notifications : getNotifications ( ) ,
251
256
onSelectedDataSources : ( dataSources ) =>
@@ -307,12 +312,15 @@ export function DashboardOverview(props: OverviewProps) {
307
312
</ EuiFlexItem >
308
313
</ EuiFlexGroup >
309
314
< EuiSpacer />
310
- < AnomaliesLiveChart selectedDetectors = { currentDetectors } />
315
+ < AnomaliesLiveChart
316
+ selectedDetectors = { currentDetectors }
317
+ dataSourceId = { MDSOverviewState . selectedDataSourceId } />
311
318
< EuiSpacer />
312
319
< EuiFlexGroup justifyContent = "spaceBetween" >
313
320
< EuiFlexItem grow = { 6 } >
314
321
< AnomaliesDistributionChart
315
322
selectedDetectors = { currentDetectors }
323
+ dataSourceId = { MDSOverviewState . selectedDataSourceId }
316
324
/>
317
325
</ EuiFlexItem >
318
326
< EuiFlexItem grow = { 3 } >
0 commit comments