@@ -6,9 +6,21 @@ import { Button, Dropdown, DropdownToggle, DropdownSeparator, DropdownItem, Keba
6
6
7
7
import { FLAGS , stateToProps as flagStateToProps , flagPending } from '../features' ;
8
8
import { authSvc } from '../module/auth' ;
9
- import { history } from './utils' ;
9
+ import { history , Firehose } from './utils' ;
10
10
import { openshiftHelpBase } from './utils/documentation' ;
11
11
import { AboutModal } from './about-modal' ;
12
+ import { getAvailableClusterUpdates , clusterVersionReference } from './cluster-settings/cluster-settings' ;
13
+
14
+ const UpdatesAvailableButton = ( { obj, onClick} ) => {
15
+ const updatesAvailable = ! _ . isEmpty ( getAvailableClusterUpdates ( obj . data ) ) ;
16
+ return updatesAvailable
17
+ ? < ToolbarItem >
18
+ < Button variant = "plain" aria-label = "Cluster Updates Available" onClick = { onClick } >
19
+ < ArrowCircleUpIcon />
20
+ </ Button >
21
+ </ ToolbarItem >
22
+ : null ;
23
+ } ;
12
24
13
25
class MastheadToolbar_ extends React . Component {
14
26
constructor ( props ) {
@@ -218,16 +230,20 @@ class MastheadToolbar_ extends React.Component {
218
230
render ( ) {
219
231
const { isApplicationLauncherDropdownOpen, isHelpDropdownOpen, showAboutModal } = this . state ;
220
232
const { flags } = this . props ;
233
+ const resources = [ {
234
+ kind : clusterVersionReference ,
235
+ name : 'version' ,
236
+ isList : false ,
237
+ prop : 'obj' ,
238
+ } ] ;
221
239
return (
222
240
< React . Fragment >
223
241
< Toolbar >
224
242
< ToolbarGroup className = "pf-u-sr-only pf-u-visible-on-md" >
225
243
{ /* desktop -- (updates button) */ }
226
- { flags [ FLAGS . CLUSTER_UPDATES_AVAILABLE ] && < ToolbarItem >
227
- < Button variant = "plain" aria-label = "Cluster Updates Available" onClick = { this . _onClusterUpdatesAvailable } >
228
- < ArrowCircleUpIcon />
229
- </ Button >
230
- </ ToolbarItem > }
244
+ < Firehose resources = { resources } >
245
+ < UpdatesAvailableButton onClick = { this . _onClusterUpdatesAvailable } />
246
+ </ Firehose >
231
247
{ /* desktop -- (application launcher dropdown), help dropdown [documentation, about] */ }
232
248
{ flags [ FLAGS . OPENSHIFT ] && < ToolbarItem >
233
249
< Dropdown
@@ -281,7 +297,7 @@ class MastheadToolbar_ extends React.Component {
281
297
}
282
298
283
299
const mastheadToolbarStateToProps = state => {
284
- const desiredFlags = [ FLAGS . AUTH_ENABLED , FLAGS . OPENSHIFT , FLAGS . CLUSTER_UPDATES_AVAILABLE ] ;
300
+ const desiredFlags = [ FLAGS . AUTH_ENABLED , FLAGS . OPENSHIFT ] ;
285
301
const flagProps = flagStateToProps ( desiredFlags , state ) ;
286
302
const user = state . UI . get ( 'user' ) ;
287
303
return { ...flagProps , user } ;
0 commit comments