1
- import * as React from " react" ;
2
- import classnames from " classnames" ;
3
- import { FilterItemsProps } from " ../../PropsType" ;
4
- import " ./index.less" ;
1
+ import * as React from ' react' ;
2
+ import classnames from ' classnames' ;
3
+ import { FilterItemsProps } from ' ../../PropsType' ;
4
+ import ' ./index.less' ;
5
5
6
- const prefixCls = " alita-filter-item" ;
6
+ const prefixCls = ' alita-filter-item' ;
7
7
8
8
export const FilterItem : React . FC < FilterItemsProps > = ( props ) => {
9
9
const {
10
- openFlag = "up" ,
10
+ openFlag = 'up' ,
11
11
onClick,
12
12
selectObj = { } ,
13
- aliasObj = { label : " label" , id : "id" } ,
13
+ aliasObj = { label : ' label' , id : 'id' } ,
14
14
activeFilterId,
15
15
filterId,
16
16
initObj = { } ,
17
17
defaultText,
18
+ value,
19
+ data = [ ] ,
18
20
} = props ;
19
21
const [ status , updateStatus ] = React . useState ( openFlag ) ;
20
22
const [ currentObj , updateCurrentObj ] = React . useState ( initObj ) ;
@@ -23,24 +25,36 @@ export const FilterItem: React.FC<FilterItemsProps> = (props) => {
23
25
React . useEffect ( ( ) => {
24
26
updateStatus ( openFlag ) ;
25
27
if ( activeFilterId === filterId ) {
26
- if ( JSON . stringify ( selectObj ) !== "{}" ) {
27
- updateText ( "" ) ;
28
+ if ( JSON . stringify ( selectObj ) !== '{}' ) {
29
+ updateText ( '' ) ;
28
30
updateCurrentObj ( selectObj ) ;
29
31
}
30
32
}
31
33
} , [ openFlag ] ) ;
32
34
35
+ React . useEffect ( ( ) => {
36
+ const chooseItem = data . find ( ( row : any ) => {
37
+ if ( aliasObj . id ) {
38
+ return row [ aliasObj . id ] === value ;
39
+ }
40
+ return false ;
41
+ } ) ;
42
+ if ( chooseItem ) {
43
+ updateCurrentObj ( chooseItem ) ;
44
+ }
45
+ } , [ value ] ) ;
46
+
33
47
return (
34
48
< div className = { `${ prefixCls } ` } >
35
49
< div
36
50
className = { `${ prefixCls } -content` }
37
51
onClick = { ( ) => {
38
- if ( status === "up" ) {
39
- updateStatus ( " down" ) ;
40
- onClick ( " down" , currentObj ) ;
52
+ if ( status === 'up' ) {
53
+ updateStatus ( ' down' ) ;
54
+ onClick ( ' down' , currentObj ) ;
41
55
} else {
42
- updateStatus ( "up" ) ;
43
- onClick ( "up" , currentObj ) ;
56
+ updateStatus ( 'up' ) ;
57
+ onClick ( 'up' , currentObj ) ;
44
58
}
45
59
} }
46
60
>
@@ -49,8 +63,8 @@ export const FilterItem: React.FC<FilterItemsProps> = (props) => {
49
63
</ div >
50
64
< i
51
65
className = { classnames ( {
52
- [ `${ prefixCls } -icon-down` ] : status === " down" ,
53
- [ `${ prefixCls } -icon-up` ] : status === "up" ,
66
+ [ `${ prefixCls } -icon-down` ] : status === ' down' ,
67
+ [ `${ prefixCls } -icon-up` ] : status === 'up' ,
54
68
[ `${ prefixCls } -noraml-icon` ] : true ,
55
69
} ) }
56
70
> </ i >
@@ -59,5 +73,5 @@ export const FilterItem: React.FC<FilterItemsProps> = (props) => {
59
73
) ;
60
74
} ;
61
75
62
- FilterItem . displayName = " FilterItem" ;
76
+ FilterItem . displayName = ' FilterItem' ;
63
77
export default FilterItem ;
0 commit comments