1
1
import React , { useState } from "react" ;
2
- import "./SearchBar.css" ;
2
+ import "../Styles /SearchBar.css" ;
3
3
import SearchIcon from "@material-ui/icons/Search" ;
4
4
import CloseIcon from "@material-ui/icons/Close"
5
5
6
- function SearchBar ( { placeholder, data } ) {
6
+ function SearchBar ( { placeholder, studentData } ) {
7
7
const [ filteredData , setFilteredData ] = useState ( [ ] ) ;
8
8
const [ wordEntered , setWordEntered ] = useState ( "" ) ;
9
9
10
10
const handleFilter = ( event ) => {
11
11
const searchWord = event . target . value ;
12
12
setWordEntered ( searchWord ) ;
13
- const newFilter = data . filter ( ( value ) => {
14
- return value . title . toLowerCase ( ) . includes ( searchWord . toLowerCase ( ) ) ;
15
- } ) ;
16
-
17
13
if ( searchWord . length < 3 ) {
18
14
setFilteredData ( [ ] ) ;
19
15
} else {
20
- setFilteredData ( newFilter ) ;
16
+ const filteredResults = studentData . filter ( ( query ) => {
17
+ return query . student . name . toLowerCase ( ) . includes ( searchWord . toLowerCase ( ) ) + query . student . id . toLowerCase ( ) . includes ( searchWord . toLowerCase ( ) ) ;
18
+ } ) ;
19
+ setFilteredData ( filteredResults ) ;
21
20
}
22
21
} ;
23
22
24
- const clearInput = ( ) => {
23
+ const clearState = ( ) => {
25
24
setFilteredData ( [ ] ) ;
26
25
setWordEntered ( "" ) ;
27
26
} ;
@@ -36,20 +35,18 @@ function SearchBar({ placeholder, data }) {
36
35
onChange = { handleFilter }
37
36
/>
38
37
< div className = "searchIcon" >
39
- { filteredData . length === 0 ? (
38
+ { wordEntered . length === 0 ? (
40
39
< SearchIcon />
41
40
) : (
42
- < CloseIcon id = "clearBtn" onClick = { clearInput } />
41
+ < CloseIcon id = "clearBtn" onClick = { clearState } />
43
42
) }
44
43
</ div >
45
44
</ div >
46
- { filteredData . length != 0 && (
45
+ { filteredData . length !== 0 && (
47
46
< div className = "dataResult" >
48
- { filteredData . slice ( 0 , 5 ) . map ( ( value , key ) => {
47
+ { filteredData . slice ( 0 , 5 ) . map ( ( value ) => {
49
48
return (
50
- < a className = "dataItem" href = { value . link } target = "_blank" >
51
- < p > { value . title } </ p >
52
- </ a >
49
+ < p className = "dataItem" > { `${ value . student . name } (${ value . student . id } )` } </ p >
53
50
) ;
54
51
} ) }
55
52
</ div >
0 commit comments