1
1
import { Select , TextInput } from "@mantine/core" ;
2
- import { useContext } from "react" ;
2
+ import { useContext , useState } from "react" ;
3
3
import { Icon } from "../../../../Assets/Icons" ;
4
4
import { AppContext } from "../../../../Context/AppContext" ;
5
5
import { FilterStyles as Styles } from "../../../../Styles/shared/Filters.style" ;
6
- import { FilterType } from "../../../../Utility/filter-utility" ;
6
+ import { FilterType , getPairString } from "../../../../Utility/filter-utility" ;
7
+ import { KeyValuePair } from "../../../Common/DataPairPill" ;
7
8
import {
8
9
AppliedFiltersSection ,
9
10
FiltrationProp ,
@@ -13,10 +14,10 @@ import GridListToggle from "../../../Common/GridListToggle";
13
14
export function ApisFilter ( { filters } : { filters : FiltrationProp } ) {
14
15
const { preferGridView, setPreferGridView } = useContext ( AppContext ) ;
15
16
16
- // const [pairFilter, setPairFilter] = useState<KeyValuePair>({
17
- // pairKey: "",
18
- // value: "",
19
- // });
17
+ const [ pairFilter , setPairFilter ] = useState < KeyValuePair > ( {
18
+ pairKey : "" ,
19
+ value : "" ,
20
+ } ) ;
20
21
21
22
const addNameFilter = ( evt : { target : { value : string } } ) => {
22
23
const displayName = evt . target . value ;
@@ -36,38 +37,38 @@ export function ApisFilter({ filters }: { filters: FiltrationProp }) {
36
37
filters . setNameFilter ( "" ) ;
37
38
} ;
38
39
39
- // const alterPairKey = (evt: React.ChangeEvent<HTMLInputElement>) => {
40
- // const newKey = evt.target.value;
41
- // setPairFilter({
42
- // pairKey: newKey,
43
- // value: pairFilter.value,
44
- // });
45
- // };
46
- // const alterKeyValuePair = (evt: React.ChangeEvent<HTMLInputElement>) => {
47
- // const newValue = evt.target.value;
48
- // setPairFilter({
49
- // pairKey: pairFilter.pairKey,
50
- // value: newValue,
51
- // });
52
- // };
40
+ const alterPairKey = ( evt : React . ChangeEvent < HTMLInputElement > ) => {
41
+ const newKey = evt . target . value ;
42
+ setPairFilter ( {
43
+ pairKey : newKey ,
44
+ value : pairFilter . value ,
45
+ } ) ;
46
+ } ;
47
+ const alterKeyValuePair = ( evt : React . ChangeEvent < HTMLInputElement > ) => {
48
+ const newValue = evt . target . value ;
49
+ setPairFilter ( {
50
+ pairKey : pairFilter . pairKey ,
51
+ value : newValue ,
52
+ } ) ;
53
+ } ;
53
54
54
- // const addKeyValuePairFilter = () => {
55
- // const displayName = getPairString(pairFilter);
56
- // if (displayName.trim() === ":") return;
57
- // // Check for duplicate filters.
58
- // const isDuplicateFilter = filters.allFilters.some(
59
- // (f) => f.type === FilterType.keyValuePair && f.displayName === displayName
60
- // );
61
- // if (isDuplicateFilter) {
62
- // return;
63
- // }
64
- // filters.setAllFilters([
65
- // ...filters.allFilters,
66
- // { displayName, type: FilterType.keyValuePair },
67
- // ]);
55
+ const addKeyValuePairFilter = ( ) => {
56
+ const displayName = getPairString ( pairFilter ) ;
57
+ if ( displayName . trim ( ) === ":" ) return ;
58
+ // Check for duplicate filters.
59
+ const isDuplicateFilter = filters . allFilters . some (
60
+ ( f ) => f . type === FilterType . keyValuePair && f . displayName === displayName
61
+ ) ;
62
+ if ( isDuplicateFilter ) {
63
+ return ;
64
+ }
65
+ filters . setAllFilters ( [
66
+ ...filters . allFilters ,
67
+ { displayName, type : FilterType . keyValuePair } ,
68
+ ] ) ;
68
69
69
- // setPairFilter({ pairKey: "", value: "" });
70
- // };
70
+ setPairFilter ( { pairKey : "" , value : "" } ) ;
71
+ } ;
71
72
72
73
const addTypeFilter = ( addedType : string ) => {
73
74
filters . setAllFilters ( [
@@ -109,7 +110,7 @@ export function ApisFilter({ filters }: { filters: FiltrationProp }) {
109
110
/>
110
111
< Icon . MagnifyingGlass style = { { pointerEvents : "none" } } />
111
112
</ form >
112
- { /* <form
113
+ < form
113
114
onSubmit = { ( e ) => {
114
115
e . preventDefault ( ) ;
115
116
addKeyValuePairFilter ( ) ;
@@ -139,7 +140,7 @@ export function ApisFilter({ filters }: { filters: FiltrationProp }) {
139
140
< Icon . Add />
140
141
</ button >
141
142
</ div >
142
- </form> */ }
143
+ </ form >
143
144
< div className = "dropdownFilter" >
144
145
< div className = "gearHolder" >
145
146
< Icon . CodeGear />
0 commit comments