@@ -65,6 +65,7 @@ const DropdownIndicator = (props) => (
65
65
</ components . DropdownIndicator >
66
66
)
67
67
68
+ // To be replaced with MultiSelectPicker
68
69
const FilterButton : React . FC < FilterButtonPropsType > = ( {
69
70
placeholder,
70
71
appliedFilters,
@@ -74,16 +75,26 @@ const FilterButton: React.FC<FilterButtonPropsType> = ({
74
75
getFormattedFilterLabelValue,
75
76
menuAlignFromRight,
76
77
} ) => {
78
+ const [ menuIsOpen , setMenuIsOpen ] = useState < boolean > ( false )
77
79
const [ selectedOptions , setSelectedOptions ] = useState < OptionType [ ] > (
78
80
appliedFilters . map ( ( filter ) => ( { value : filter , label : getFormattedFilterLabelValue ?.( filter ) || filter } ) ) ,
79
81
)
80
82
83
+ const handleMenuOpen = ( ) => {
84
+ setMenuIsOpen ( true )
85
+ }
86
+
87
+ const handleMenuClose = ( ) => {
88
+ setMenuIsOpen ( false )
89
+ }
90
+
81
91
const handleSelectOnChange : React . ComponentProps < typeof ReactSelect > [ 'onChange' ] = ( selected : OptionType [ ] ) => {
82
92
setSelectedOptions ( [ ...selected ] )
83
93
}
84
94
85
95
const handleApply = ( ) => {
86
96
handleApplyChange ( Object . values ( selectedOptions ) . map ( ( option ) => option . value ) )
97
+ handleMenuClose ( )
87
98
}
88
99
89
100
return (
@@ -109,6 +120,9 @@ const FilterButton: React.FC<FilterButtonPropsType> = ({
109
120
styles = { getFilterStyle ( menuAlignFromRight ) }
110
121
// @ts -ignore NOTE: passing this to use in FilterSelectMenuList
111
122
handleApplyFilter = { handleApply }
123
+ menuIsOpen = { menuIsOpen }
124
+ onMenuOpen = { handleMenuOpen }
125
+ onMenuClose = { handleMenuClose }
112
126
/>
113
127
)
114
128
}
0 commit comments