1
1
import {
2
2
AdvancedSearchJoinAttrInfo ,
3
- AdvancedSearchResultAttrInfoFilterKeyEnum ,
4
3
EntryAttributeTypeTypeEnum ,
5
4
} from "@dmm-com/airone-apiclient-typescript-fetch" ;
6
5
import AddIcon from "@mui/icons-material/Add" ;
@@ -23,6 +22,7 @@ import { SearchResultControlMenu } from "./SearchResultControlMenu";
23
22
import { SearchResultControlMenuForEntry } from "./SearchResultControlMenuForEntry" ;
24
23
import { SearchResultControlMenuForReferral } from "./SearchResultControlMenuForReferral" ;
25
24
25
+ import { getIsFiltered } from "pages/AdvancedSearchResultsPage" ;
26
26
import {
27
27
AttrFilter ,
28
28
AttrsFilter ,
@@ -53,6 +53,7 @@ interface Props {
53
53
entityIds : number [ ] ;
54
54
searchAllEntities : boolean ;
55
55
joinAttrs : AdvancedSearchJoinAttrInfo [ ] ;
56
+ setSearchResults : ( isJoinSearching : boolean ) => void ;
56
57
}
57
58
58
59
export const SearchResultsTableHead : FC < Props > = ( {
@@ -64,6 +65,7 @@ export const SearchResultsTableHead: FC<Props> = ({
64
65
entityIds,
65
66
searchAllEntities,
66
67
joinAttrs,
68
+ setSearchResults,
67
69
} ) => {
68
70
const location = useLocation ( ) ;
69
71
const history = useHistory ( ) ;
@@ -105,17 +107,10 @@ export const SearchResultsTableHead: FC<Props> = ({
105
107
Object . fromEntries (
106
108
Object . keys ( defaultAttrsFilter ?? { } ) . map ( ( attrName : string ) => {
107
109
const attrFilter = defaultAttrsFilter [ attrName ] ;
108
- switch ( attrFilter ?. filterKey ) {
109
- case AdvancedSearchResultAttrInfoFilterKeyEnum . EMPTY :
110
- case AdvancedSearchResultAttrInfoFilterKeyEnum . NON_EMPTY :
111
- case AdvancedSearchResultAttrInfoFilterKeyEnum . DUPLICATED :
112
- return [ attrName , true ] ;
113
- case AdvancedSearchResultAttrInfoFilterKeyEnum . TEXT_CONTAINED :
114
- return [ attrName , attrFilter . keyword !== "" ] ;
115
- case AdvancedSearchResultAttrInfoFilterKeyEnum . TEXT_NOT_CONTAINED :
116
- return [ attrName , attrFilter . keyword !== "" ] ;
117
- }
118
- return [ attrName , false ] ;
110
+ return [
111
+ attrName ,
112
+ getIsFiltered ( attrFilter . filterKey , attrFilter . keyword ) ,
113
+ ] ;
119
114
} )
120
115
) ,
121
116
[ defaultAttrsFilter ]
@@ -159,6 +154,9 @@ export const SearchResultsTableHead: FC<Props> = ({
159
154
. filter ( ( v , i , a ) => a . findIndex ( ( t ) => t . name === v . name ) === i ) ,
160
155
} ) ;
161
156
157
+ setSearchResults (
158
+ getIsFiltered ( attrFilter ?. filterKey , attrFilter ?. keyword )
159
+ ) ;
162
160
// simply reload with the new params
163
161
history . push ( {
164
162
pathname : location . pathname ,
@@ -216,6 +214,14 @@ export const SearchResultsTableHead: FC<Props> = ({
216
214
targetAttrname = { joinAttrName }
217
215
joinAttrs = { joinAttrs }
218
216
handleClose = { ( ) => setJoinAttrname ( "" ) }
217
+ setSearchResults = { ( ) =>
218
+ setSearchResults (
219
+ getIsFiltered (
220
+ attrsFilter [ attrName ] . filterKey ,
221
+ attrsFilter [ attrName ] . keyword
222
+ )
223
+ )
224
+ }
219
225
/>
220
226
) }
221
227
< StyledIconButton
0 commit comments