11import { useState } from 'react' ;
22import './EventStats.css' ;
3+ import { useSelector } from 'react-redux' ;
34
45const dummyData = [
56 {
@@ -53,6 +54,7 @@ const dummyData = [
5354 } ,
5455] ;
5556
57+
5658export default function PopularEvents ( ) {
5759 const [ timeFilter , setTimeFilter ] = useState ( 'All day' ) ;
5860 const [ typeFilter , setTypeFilter ] = useState ( 'All' ) ;
@@ -74,7 +76,7 @@ export default function PopularEvents() {
7476 const mostPopularEvent = filteredData . reduce (
7577 ( max , event ) =>
7678 calculatePercentage ( event . attended , event . enrolled ) >
77- calculatePercentage ( max . attended , max . enrolled )
79+ calculatePercentage ( max . attended , max . enrolled )
7880 ? event
7981 : max ,
8082 filteredData [ 0 ] || { } ,
@@ -83,17 +85,17 @@ export default function PopularEvents() {
8385 const leastPopularEvent = filteredData . reduce (
8486 ( min , event ) =>
8587 calculatePercentage ( event . attended , event . enrolled ) <
86- calculatePercentage ( min . attended , min . enrolled )
88+ calculatePercentage ( min . attended , min . enrolled )
8789 ? event
8890 : min ,
8991 filteredData [ 0 ] || { } ,
9092 ) ;
91-
93+ const darkMode = useSelector ( state => state . theme . darkMode ) ;
9294 return (
93- < div className = "popular-events-container" >
94- < div className = "header-container" >
95- < h2 className = "popular-events-header" > Most Popular Event</ h2 >
96- < div className = "filters" >
95+ < div className = { `popular-events-container ${ darkMode ? "popular-events-container-dark" : "" } ` } >
96+ < div className = { `header-container ${ darkMode ? "header-container-dark" : "" } ` } >
97+ < h2 className = { `popular-events-header ${ darkMode ? "popular-events-header-dark" : "" } ` } > Most Popular Event</ h2 >
98+ < div className = { `filters ${ darkMode ? "filters-dark" : "" } ` } >
9799 < select value = { timeFilter } onChange = { e => setTimeFilter ( e . target . value ) } >
98100 < option value = "All day" > All day</ option >
99101 < option value = "Morning" > Morning</ option >
@@ -108,10 +110,10 @@ export default function PopularEvents() {
108110 </ div >
109111 </ div >
110112
111- < div className = "stats" >
113+ < div className = { `stats ${ darkMode ? "stats-dark" : "" } ` } >
112114 { filteredData . map ( event => (
113115 < div key = { event . id } className = "stat-item" >
114- < div className = "stat-label" > { event . type } </ div >
116+ < div className = { `stat-label ${ darkMode ? "stat-label-dark" : "" } ` } > { event . type } </ div >
115117 < div className = "stat-bar" >
116118 < div
117119 className = { `bar ${ getBarColor (
@@ -120,38 +122,37 @@ export default function PopularEvents() {
120122 style = { { width : `${ calculatePercentage ( event . attended , event . enrolled ) } %` } }
121123 />
122124 </ div >
123- < div className = "stat-value" >
124- { `${ calculatePercentage ( event . attended , event . enrolled ) } % (${ event . attended } /${
125- event . enrolled
126- } )`}
125+ < div className = { `stat-value ${ darkMode ? "stat-value-dark" : "" } ` } >
126+ { `${ calculatePercentage ( event . attended , event . enrolled ) } % (${ event . attended } /${ event . enrolled
127+ } )`}
127128 </ div >
128129 </ div >
129130 ) ) }
130131 </ div >
131132 < div className = "summary" >
132- < div className = "summary-item" >
133- < div className = "summary-title" > Total Number of Events</ div >
134- < div className = "summary-value" > { filteredData . length } </ div >
133+ < div className = { `summary-item ${ darkMode ? "summary-item-dark" : "" } ` } >
134+ < div className = { `summary-title ${ darkMode ? "summary-title-dark" : "" } ` } > Total Number of Events</ div >
135+ < div className = { `summary-value ${ darkMode ? "summary-value-dark" : "" } ` } > { filteredData . length } </ div >
135136 </ div >
136- < div className = "summary-item" >
137- < div className = "summary-title" > Total Number of Event Enrollments</ div >
138- < div className = "summary-value" >
137+ < div className = { `summary-item ${ darkMode ? "summary-item-dark" : "" } ` } >
138+ < div className = { `summary-title ${ darkMode ? "summary-title-dark" : "" } ` } > Total Number of Event Enrollments</ div >
139+ < div className = { `summary-value ${ darkMode ? "summary-value-dark" : "" } ` } >
139140 { filteredData . reduce ( ( acc , event ) => acc + event . enrolled , 0 ) }
140141 </ div >
141142 </ div >
142143 { filteredData . length > 0 && (
143144 < >
144- < div className = "summary-item" >
145- < div className = "summary-title" > Most Popular Event</ div >
146- < div className = "summary-value" > { mostPopularEvent . type || 'N/A' } </ div >
145+ < div className = { `summary-item ${ darkMode ? "summary-item-dark" : "" } ` } >
146+ < div className = { `summary-title ${ darkMode ? "summary-title-dark" : "" } ` } > Most Popular Event</ div >
147+ < div className = { `summary-value ${ darkMode ? "summary-value-dark" : "" } ` } > { mostPopularEvent . type || 'N/A' } </ div >
147148 </ div >
148- < div className = "summary-item" >
149- < div className = "summary-title" > Least Popular Event</ div >
150- < div className = "summary-value" > { leastPopularEvent . type || 'N/A' } </ div >
149+ < div className = { `summary-item ${ darkMode ? "summary-item-dark" : "" } ` } >
150+ < div className = { `summary-title ${ darkMode ? "summary-title-dark" : "" } ` } > Least Popular Event</ div >
151+ < div className = { `summary-value ${ darkMode ? "summary-value-dark" : "" } ` } > { leastPopularEvent . type || 'N/A' } </ div >
151152 </ div >
152153 </ >
153154 ) }
154155 </ div >
155- </ div >
156+ </ div >
156157 ) ;
157158}
0 commit comments