2
2
* Copyright (c) 2024. Devtron Inc.
3
3
*/
4
4
5
- import { useEffect , useState } from 'react'
5
+ import { useState } from 'react'
6
6
import SelectPicker from './SelectPicker.component'
7
- import { FilterSelectPickerProps , SelectPickerProps } from './type'
7
+ import { FilterSelectPickerProps , SelectPickerOptionType , SelectPickerProps } from './type'
8
8
9
- const FilterSelectPicker = ( { appliedFilterOptions, handleApplyFilter, ...props } : FilterSelectPickerProps ) => {
9
+ const FilterSelectPicker = ( {
10
+ appliedFilterOptions,
11
+ handleApplyFilter,
12
+ options,
13
+ ...props
14
+ } : FilterSelectPickerProps ) => {
10
15
const [ isMenuOpen , setIsMenuOpen ] = useState ( false )
11
- const [ selectedOptions , setSelectedOptions ] = useState < FilterSelectPickerProps [ 'options' ] > ( )
12
-
13
- const resetSelectedOptions = ( ) => {
14
- setSelectedOptions ( structuredClone ( appliedFilterOptions ) )
15
- }
16
-
17
- useEffect ( ( ) => {
18
- resetSelectedOptions ( )
19
- } , [ appliedFilterOptions ] )
16
+ const [ selectedOptions , setSelectedOptions ] = useState < SelectPickerOptionType [ ] > (
17
+ structuredClone ( appliedFilterOptions ?? [ ] ) ,
18
+ )
20
19
21
20
const openMenu = ( ) => {
22
21
setIsMenuOpen ( true )
@@ -32,7 +31,7 @@ const FilterSelectPicker = ({ appliedFilterOptions, handleApplyFilter, ...props
32
31
33
32
const handleMenuClose = ( ) => {
34
33
closeMenu ( )
35
- resetSelectedOptions ( )
34
+ setSelectedOptions ( structuredClone ( appliedFilterOptions ?? [ ] ) )
36
35
}
37
36
38
37
const handleApplyClick = ( ) => {
@@ -54,17 +53,21 @@ const FilterSelectPicker = ({ appliedFilterOptions, handleApplyFilter, ...props
54
53
)
55
54
56
55
return (
57
- < div >
58
- < SelectPicker
59
- { ...props }
60
- isMulti
61
- menuIsOpen = { isMenuOpen }
62
- onMenuOpen = { openMenu }
63
- onMenuClose = { handleMenuClose }
64
- onChange = { handleSelectOnChange }
65
- renderMenuListFooter = { renderApplyButton }
66
- />
67
- </ div >
56
+ < SelectPicker
57
+ { ...props }
58
+ options = { options }
59
+ value = { selectedOptions }
60
+ isMulti
61
+ menuIsOpen = { isMenuOpen }
62
+ onMenuOpen = { openMenu }
63
+ onMenuClose = { handleMenuClose }
64
+ onChange = { handleSelectOnChange }
65
+ renderMenuListFooter = { renderApplyButton }
66
+ controlShouldRenderValue = { false }
67
+ showSelectedOptionsCount
68
+ isSearchable
69
+ isClearable = { false }
70
+ />
68
71
)
69
72
}
70
73
0 commit comments