@@ -39,6 +39,7 @@ import {
39
39
MIN_SUPPORTED_VERSION ,
40
40
MINIMUM_FULL_SUPPORTED_VERSION ,
41
41
} from '../../../../common/constants' ;
42
+ import { getLocalClusterVersion } from '../../../store/reducers/opensearch_reducer' ;
42
43
43
44
interface NewWorkflowProps { }
44
45
@@ -52,7 +53,7 @@ const filterPresetsByVersion = async (
52
53
return workflows ;
53
54
}
54
55
55
- if ( ! dataSourceId ) {
56
+ if ( dataSourceId === undefined ) {
56
57
return [ ] ;
57
58
}
58
59
@@ -92,14 +93,18 @@ export function NewWorkflow(props: NewWorkflowProps) {
92
93
const dataSourceId = getDataSourceId ( ) ;
93
94
const dataSourceEnabled = getDataSourceEnabled ( ) . enabled ;
94
95
// workflows state
95
- const { presetWorkflows, loading } = useSelector (
96
+ const { presetWorkflows, loading : presetsLoading } = useSelector (
96
97
( state : AppState ) => state . presets
97
98
) ;
99
+ const { loading : opensearchLoading , localClusterVersion } = useSelector (
100
+ ( state : AppState ) => state . opensearch
101
+ ) ;
102
+ const isLoading = presetsLoading || opensearchLoading ;
103
+
98
104
const [ allWorkflows , setAllWorkflows ] = useState < WorkflowTemplate [ ] > ( [ ] ) ;
99
105
const [ filteredWorkflows , setFilteredWorkflows ] = useState <
100
106
WorkflowTemplate [ ]
101
107
> ( [ ] ) ;
102
- const [ isVersionLoading , setIsVersionLoading ] = useState ( false ) ;
103
108
104
109
// search bar state
105
110
const [ searchQuery , setSearchQuery ] = useState < string > ( '' ) ;
@@ -111,6 +116,7 @@ export function NewWorkflow(props: NewWorkflowProps) {
111
116
// 1. fetch the workflow presets persisted on server-side
112
117
// 2. fetch the ML models and connectors. these may be used in quick-create views when selecting a preset,
113
118
// so we optimize by fetching once at the top-level here.
119
+ // 3. fetch local cluster version if applicable
114
120
useEffect ( ( ) => {
115
121
dispatch ( getWorkflowPresets ( ) ) ;
116
122
if ( isDataSourceReady ( dataSourceId ) ) {
@@ -119,6 +125,10 @@ export function NewWorkflow(props: NewWorkflowProps) {
119
125
searchConnectors ( { apiBody : FETCH_ALL_QUERY_LARGE , dataSourceId } )
120
126
) ;
121
127
}
128
+ // if use local cluster
129
+ if ( dataSourceId === '' ) {
130
+ dispatch ( getLocalClusterVersion ( ) ) ;
131
+ }
122
132
} , [ dataSourceId , dataSourceEnabled ] ) ;
123
133
124
134
// initial hook to populate all workflows
@@ -140,19 +150,15 @@ export function NewWorkflow(props: NewWorkflowProps) {
140
150
) ;
141
151
setAllWorkflows ( enrichedWorkflows ) ;
142
152
setFilteredWorkflows ( enrichedWorkflows ) ;
143
- setIsVersionLoading ( false ) ;
144
153
return ;
145
154
}
146
155
147
- if ( ! dataSourceId ) {
156
+ if ( dataSourceId === undefined ) {
148
157
setAllWorkflows ( [ ] ) ;
149
158
setFilteredWorkflows ( [ ] ) ;
150
- setIsVersionLoading ( true ) ;
151
159
return ;
152
160
}
153
161
154
- setIsVersionLoading ( true ) ;
155
-
156
162
const version = await getEffectiveVersion ( dataSourceId ) ;
157
163
158
164
const enrichedWorkflows = presetWorkflows . map ( ( presetWorkflow ) =>
@@ -166,11 +172,10 @@ export function NewWorkflow(props: NewWorkflowProps) {
166
172
167
173
setAllWorkflows ( versionFilteredWorkflows ) ;
168
174
setFilteredWorkflows ( versionFilteredWorkflows ) ;
169
- setIsVersionLoading ( false ) ;
170
175
} ;
171
176
172
177
loadWorkflows ( ) ;
173
- } , [ presetWorkflows , dataSourceId , dataSourceEnabled ] ) ;
178
+ } , [ presetWorkflows , dataSourceId , dataSourceEnabled , localClusterVersion ] ) ;
174
179
175
180
// When search query updated, re-filter preset list
176
181
useEffect ( ( ) => {
@@ -191,7 +196,7 @@ export function NewWorkflow(props: NewWorkflowProps) {
191
196
/>
192
197
</ EuiFlexItem >
193
198
< EuiFlexItem >
194
- { loading || isVersionLoading ? (
199
+ { isLoading ? (
195
200
< EuiFlexGroup
196
201
justifyContent = "center"
197
202
alignItems = "center"
0 commit comments