@@ -4,52 +4,94 @@ import Map from "./Map/Map";
4
4
import { withStyles } from "@material-ui/styles" ;
5
5
6
6
const styles = {
7
- container : {
7
+ mainContainer : {
8
8
backgroundColor : "rgba(129, 124, 155, 0.05)" ,
9
+ padding : "7rem 3rem" ,
10
+ textAlign : "center" ,
11
+ } ,
12
+ heading : {
13
+ fontSize : "2.5rem" ,
14
+ } ,
15
+ container : {
9
16
display : "flex" ,
10
17
justifyContent : "center" ,
11
18
alignItems : "center" ,
12
- padding : "2rem 3rem" ,
13
19
} ,
14
20
mapContainer : {
15
21
flex : "1" ,
16
22
} ,
17
23
panelsContainer : {
18
24
display : "flex" ,
19
- flex : "0 0 25 %" ,
25
+ flex : "0 0 30 %" ,
20
26
justifyContent : "center" ,
21
27
flexWrap : "wrap" ,
22
28
alignItems : "center" ,
23
29
} ,
30
+ singlePanel : {
31
+ width : "50%" ,
32
+ } ,
24
33
} ;
25
34
26
35
class MapSection extends Component {
27
36
constructor ( props ) {
28
37
super ( props ) ;
29
38
this . state = {
30
- confirmed : null ,
31
- deaths : null ,
32
- recovered : null ,
33
- active : null ,
39
+ title : "" ,
40
+ confirmed : "-" ,
41
+ deaths : "-" ,
42
+ recovered : "-" ,
43
+ active : "-" ,
44
+ changed : {
45
+ title : "" ,
46
+ confirmed : "-" ,
47
+ deaths : "-" ,
48
+ recovered : "-" ,
49
+ active : "-" ,
50
+ } ,
34
51
} ;
35
52
this . currentLocation = this . currentLocation . bind ( this ) ;
36
53
}
37
54
38
55
currentLocation ( location ) {
39
56
const stateName = location . replace ( " & " , " and " ) ;
40
57
const data = this . props . data . slice ( - 1 ) [ 0 ] . regional ;
58
+ const previousData = this . props . data . slice ( - 2 , - 1 ) [ 0 ] . regional ;
59
+
60
+ console . log ( data ) ;
61
+ console . log ( previousData ) ;
62
+
41
63
const updatedData = data . filter ( ( el ) => el . loc === stateName ) ;
64
+ const previousUpdatedData = previousData . filter (
65
+ ( el ) => el . loc === stateName
66
+ ) ;
67
+
42
68
if ( updatedData [ 0 ] ) {
43
69
this . setState ( {
70
+ title : stateName ,
44
71
confirmed : updatedData [ 0 ] . totalConfirmed ,
45
72
deaths : updatedData [ 0 ] . deaths ,
46
73
recovered : updatedData [ 0 ] . discharged ,
47
74
active :
48
75
updatedData [ 0 ] . totalConfirmed -
49
76
( updatedData [ 0 ] . discharged + updatedData [ 0 ] . deaths ) ,
77
+ changed : {
78
+ confirmed :
79
+ updatedData [ 0 ] . totalConfirmed -
80
+ previousUpdatedData [ 0 ] . totalConfirmed ,
81
+ deaths : updatedData [ 0 ] . deaths - previousUpdatedData [ 0 ] . deaths ,
82
+ recovered :
83
+ updatedData [ 0 ] . discharged - previousUpdatedData [ 0 ] . discharged ,
84
+ active :
85
+ updatedData [ 0 ] . totalConfirmed -
86
+ ( updatedData [ 0 ] . discharged + updatedData [ 0 ] . deaths ) -
87
+ ( previousUpdatedData [ 0 ] . totalConfirmed -
88
+ ( previousUpdatedData [ 0 ] . discharged +
89
+ previousUpdatedData [ 0 ] . deaths ) ) ,
90
+ } ,
50
91
} ) ;
51
92
} else {
52
93
this . setState ( {
94
+ title : stateName ,
53
95
confirmed : "NA" ,
54
96
deaths : "NA" ,
55
97
recovered : "NA" ,
@@ -60,37 +102,54 @@ class MapSection extends Component {
60
102
61
103
render ( ) {
62
104
const { classes, mapData, isDarkMode } = this . props ;
63
- const { confirmed, deaths, recovered, active } = this . state ;
105
+ const { confirmed, deaths, recovered, active, title , changed } = this . state ;
64
106
return (
65
- < div className = { classes . container } >
66
- < div className = { classes . panelsContainer } >
67
- < DisplayPanels
68
- title = "Confirmed"
69
- number = { confirmed }
70
- isDarkMode = { isDarkMode }
71
- dataChange = { 4 }
72
- />
73
- < DisplayPanels
74
- title = "Active"
75
- number = { active }
76
- isDarkMode = { isDarkMode }
77
- dataChange = { 4 }
78
- />
79
- < DisplayPanels
80
- title = "Recovered"
81
- number = { recovered }
82
- isDarkMode = { isDarkMode }
83
- dataChange = { 4 }
84
- />
85
- < DisplayPanels
86
- title = "Deceased"
87
- number = { deaths }
88
- isDarkMode = { isDarkMode }
89
- dataChange = { 4 }
90
- />
91
- </ div >
92
- < div className = { classes . mapContainer } >
93
- < Map mapData = { mapData } currentLocation = { this . currentLocation } />
107
+ < div className = { classes . mainContainer } >
108
+ < h4 className = { classes . heading } >
109
+ State/UT: < span > { title } </ span >
110
+ </ h4 >
111
+ < div className = { classes . container } >
112
+ < div className = { classes . panelsContainer } >
113
+ < div className = { classes . singlePanel } >
114
+ < DisplayPanels
115
+ title = "Confirmed"
116
+ number = { confirmed }
117
+ isDarkMode = { isDarkMode }
118
+ dataChange = { changed . confirmed }
119
+ isMiniPanel = { true }
120
+ />
121
+ </ div >
122
+ < div className = { classes . singlePanel } >
123
+ < DisplayPanels
124
+ title = "Active"
125
+ number = { active }
126
+ isDarkMode = { isDarkMode }
127
+ dataChange = { changed . active }
128
+ isMiniPanel = { true }
129
+ />
130
+ </ div >
131
+ < div className = { classes . singlePanel } >
132
+ < DisplayPanels
133
+ title = "Recovered"
134
+ number = { recovered }
135
+ isDarkMode = { isDarkMode }
136
+ dataChange = { changed . recovered }
137
+ isMiniPanel = { true }
138
+ />
139
+ </ div >
140
+ < div className = { classes . singlePanel } >
141
+ < DisplayPanels
142
+ title = "Deceased"
143
+ number = { deaths }
144
+ isDarkMode = { isDarkMode }
145
+ dataChange = { changed . deaths }
146
+ isMiniPanel = { true }
147
+ />
148
+ </ div >
149
+ </ div >
150
+ < div className = { classes . mapContainer } >
151
+ < Map mapData = { mapData } currentLocation = { this . currentLocation } />
152
+ </ div >
94
153
</ div >
95
154
</ div >
96
155
) ;
0 commit comments