9
9
Form ,
10
10
Col ,
11
11
Jumbotron ,
12
+ Spinner ,
12
13
} from "react-bootstrap" ;
13
14
import { Link } from "react-router-dom" ;
14
15
@@ -24,6 +25,7 @@ export const TargetSearch: FC = () => {
24
25
const [ targets , setTargets ] = useState < Target [ ] > ( [ ] ) ;
25
26
const [ targetsDefault , setTargetsDefault ] = useState < Target [ ] > ( [ ] ) ;
26
27
const [ searchQuery , setSearchQuery ] = useState < string > ( "" ) ;
28
+ const [ loading , setLoading ] = useState < boolean > ( true ) ;
27
29
28
30
useEffect ( ( ) => {
29
31
document . title = "Home" ;
@@ -32,6 +34,7 @@ export const TargetSearch: FC = () => {
32
34
. then ( ( data ) => {
33
35
setTargetsDefault ( data ) ;
34
36
setTargets ( data ) ;
37
+ setLoading ( false ) ;
35
38
} )
36
39
. catch ( console . error ) ;
37
40
} , [ ] ) ;
@@ -40,10 +43,12 @@ export const TargetSearch: FC = () => {
40
43
const input = event . target . value ;
41
44
setSearchQuery ( input ) ;
42
45
setTargets (
43
- targetsDefault . filter (
44
- ( elem ) =>
45
- elem . first_name . toLowerCase ( ) . includes ( input . toLowerCase ( ) ) ||
46
- elem . last_name . toLowerCase ( ) . includes ( input . toLowerCase ( ) )
46
+ targetsDefault . filter ( ( elem ) =>
47
+ (
48
+ elem . first_name . toLowerCase ( ) +
49
+ " " +
50
+ elem . last_name . toLowerCase ( )
51
+ ) . includes ( input . toLowerCase ( ) )
47
52
)
48
53
) ;
49
54
} ;
@@ -82,9 +87,18 @@ export const TargetSearch: FC = () => {
82
87
</ Jumbotron >
83
88
</ Col >
84
89
</ Row >
90
+
85
91
< Row >
86
- < Col >
87
- < CardColumns > { listTargets } </ CardColumns >
92
+ < Col style = { { textAlign : "center" } } >
93
+ { loading ? (
94
+ < Spinner
95
+ variant = "primary"
96
+ style = { { height : 200 , width : 200 } }
97
+ animation = "border"
98
+ />
99
+ ) : (
100
+ < CardColumns > { listTargets } </ CardColumns >
101
+ ) }
88
102
</ Col >
89
103
</ Row >
90
104
</ Container >
0 commit comments