1
- import { css } from '@emotion/css' ;
2
- import { useEffect , useState , FC } from 'react' ;
1
+ import React , { useEffect , useState } from 'react' ;
3
2
4
- import { GrafanaTheme2 , TypedVariableModel , VariableHide } from '@grafana/data' ;
5
3
import { selectors } from '@grafana/e2e-selectors' ;
6
- import { useStyles2 } from '@grafana/ui' ;
7
- import { FnGlobalState } from 'app/core/reducers/fn-slice' ;
4
+ import { useSelector } from 'app/types' ;
8
5
9
6
import { PickerRenderer } from '../../../variables/pickers/PickerRenderer' ;
7
+ import { VariableHide , VariableModel } from '../../../variables/types' ;
10
8
11
9
interface Props {
12
- variables : TypedVariableModel [ ] ;
10
+ variables : VariableModel [ ] ;
13
11
readOnly ?: boolean ;
14
- hiddenVariables ?: FnGlobalState [ 'hiddenVariables' ] ;
15
12
}
16
13
17
- export const SubMenuItems : FC < Props > = ( { variables, readOnly, hiddenVariables } ) => {
18
- const [ visibleVariables , setVisibleVariables ] = useState < TypedVariableModel [ ] > ( [ ] ) ;
19
- const styles = useStyles2 ( getStyles ) ;
14
+ export const SubMenuItems = ( { variables, readOnly } : Props ) => {
15
+ const [ visibleVariables , setVisibleVariables ] = useState < VariableModel [ ] > ( [ ] ) ;
16
+
17
+ const hiddenVariables = useSelector ( ( state ) => state . fnGlobalState . hiddenVariables ) ;
20
18
21
19
useEffect ( ( ) => {
22
- setVisibleVariables ( variables . filter ( ( state ) => state . hide !== VariableHide . hideVariable ) ) ;
23
- } , [ variables ] ) ;
20
+ setVisibleVariables (
21
+ variables . filter ( ( state ) => state . hide !== VariableHide . hideVariable && ! hiddenVariables ?. includes ( state . id ) )
22
+ ) ;
23
+ } , [ variables , hiddenVariables ] ) ;
24
24
25
25
if ( visibleVariables . length === 0 ) {
26
26
return null ;
@@ -29,14 +29,10 @@ export const SubMenuItems: FC<Props> = ({ variables, readOnly, hiddenVariables }
29
29
return (
30
30
< >
31
31
{ visibleVariables . map ( ( variable ) => {
32
- if ( hiddenVariables ?. includes ( variable . id ) ) {
33
- return null ;
34
- }
35
-
36
32
return (
37
33
< div
38
34
key = { variable . id }
39
- className = { styles . submenuItem }
35
+ className = "submenu-item gf-form-inline"
40
36
data-testid = { selectors . pages . Dashboard . SubMenu . submenuItem }
41
37
>
42
38
< PickerRenderer variable = { variable } readOnly = { readOnly } />
@@ -46,18 +42,3 @@ export const SubMenuItems: FC<Props> = ({ variables, readOnly, hiddenVariables }
46
42
</ >
47
43
) ;
48
44
} ;
49
-
50
- const getStyles = ( theme : GrafanaTheme2 ) => ( {
51
- submenuItem : css ( {
52
- display : 'inline-block' ,
53
-
54
- '.fa-caret-down' : {
55
- fontSize : '75%' ,
56
- paddingLeft : theme . spacing ( 1 ) ,
57
- } ,
58
-
59
- '.gf-form' : {
60
- marginBottom : 0 ,
61
- } ,
62
- } ) ,
63
- } ) ;
0 commit comments