1
- import React , { useCallback } from 'react' ;
1
+ import React from 'react' ;
2
2
import { Spinner } from '@blueprintjs/core' ;
3
3
import { observer } from 'mobx-react' ;
4
4
5
5
import { NamespaceDescriptor } from '~/domain/namespaces' ;
6
+ import { NamespaceSelectorDropdown } from '../TopBar/NamespaceSelectorDropdown' ;
6
7
7
8
import css from './WelcomeScreen.scss' ;
8
9
import hubbleLogo from '~/assets/images/hubble-logo.png' ;
@@ -22,11 +23,11 @@ export const WelcomeScreen = observer(function WelcomeScreen(props: Props) {
22
23
< h1 className = { css . title } > Welcome!</ h1 >
23
24
< p className = { css . description } > To begin select one of the namespaces:</ p >
24
25
{ someNamespacesLoaded ? (
25
- < ul className = { css . namespacesList } >
26
- { props . namespaces . map ( ns => (
27
- < NamespaceItem key = { ns . namespace } namespace = { ns } onClick = { props . onNamespaceChange } />
28
- ) ) }
29
- </ ul >
26
+ < NamespaceSelectorDropdown
27
+ namespaces = { props . namespaces }
28
+ currentNamespace = { null }
29
+ onChange = { props . onNamespaceChange }
30
+ / >
30
31
) : (
31
32
< div className = { css . spinnerWrapper } >
32
33
< Spinner size = { 48 } intent = "primary" />
@@ -36,26 +37,3 @@ export const WelcomeScreen = observer(function WelcomeScreen(props: Props) {
36
37
</ div >
37
38
) ;
38
39
} ) ;
39
-
40
- interface NamespaceItemProps {
41
- namespace : NamespaceDescriptor ;
42
- onClick : ( ns : NamespaceDescriptor ) => void ;
43
- }
44
-
45
- const NamespaceItem = observer ( function NamespaceItem ( props : NamespaceItemProps ) {
46
- const onClick = useCallback (
47
- ( event : React . MouseEvent < HTMLAnchorElement > ) => {
48
- event . preventDefault ( ) ;
49
- props . onClick ( props . namespace ) ;
50
- } ,
51
- [ props . onClick ] ,
52
- ) ;
53
-
54
- return (
55
- < li >
56
- < a href = { `/${ props . namespace . namespace } ` } onClick = { onClick } >
57
- { props . namespace . namespace }
58
- </ a >
59
- </ li >
60
- ) ;
61
- } ) ;
0 commit comments