);
}
diff --git a/src/components/CommunityPortal/Reports/Participation/MyCases.jsx b/src/components/CommunityPortal/Reports/Participation/MyCases.jsx
index 6f29bc3b28f..d7d2c720eed 100644
--- a/src/components/CommunityPortal/Reports/Participation/MyCases.jsx
+++ b/src/components/CommunityPortal/Reports/Participation/MyCases.jsx
@@ -1,13 +1,12 @@
import { useState } from 'react';
import { useSelector } from 'react-redux';
import styles from './MyCases.module.css';
-import mockEvents from './mockData';
import CreateEventModal from './CreateEventModal';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faUsers } from '@fortawesome/free-solid-svg-icons';
import { filterEventsByDate } from './FilterByDate';
-function MyCases() {
+function MyCases({ events = [] }) {
const [view, setView] = useState('card');
const [filter, setFilter] = useState('All Time');
const [expanded, setExpanded] = useState(false);
@@ -20,7 +19,7 @@ function MyCases() {
const darkMode = useSelector(state => state.theme.darkMode);
- const filteredEvents = filterEventsByDate(mockEvents, filter).filter(
+ const filteredEvents = filterEventsByDate(events, filter).filter(
event => new Date(event.eventDate).getTime() >= now.getTime(),
);
diff --git a/src/components/CommunityPortal/Reports/Participation/Participation.module.css b/src/components/CommunityPortal/Reports/Participation/Participation.module.css
index 32d69bf954a..7408f87e645 100644
--- a/src/components/CommunityPortal/Reports/Participation/Participation.module.css
+++ b/src/components/CommunityPortal/Reports/Participation/Participation.module.css
@@ -352,12 +352,69 @@
}
.trackingRateGreen {
- color: green;
+ /* !important needed: `.trackingRateValue span` (below) has higher specificity
+ and would otherwise override this to gray even in light mode. */
+ color: green !important;
font-weight: bold;
}
.trackingRateRed {
- color: red;
+ /* !important needed: same reason as .trackingRateGreen above. */
+ color: red !important;
+}
+
+/* public/index.css sets `body.dark-mode * { color: #fff !important }`, which otherwise
+ washes out these semantic colors in the per-event table below. Match its
+ specificity + importance to keep them. The `*` descendant selectors are needed
+ too: that global rule matches every descendant directly, not just the element
+ carrying this class. */
+:global(body.dark-mode) .trackingRateGreen,
+:global(body.bm-dashboard-dark) .trackingRateGreen,
+:global(body.dark-mode) .trackingRateGreen *,
+:global(body.bm-dashboard-dark) .trackingRateGreen * {
+ color: green !important;
+}
+
+:global(body.dark-mode) .trackingRateRed,
+:global(body.bm-dashboard-dark) .trackingRateRed,
+:global(body.dark-mode) .trackingRateRed *,
+:global(body.bm-dashboard-dark) .trackingRateRed * {
+ color: red !important;
+}
+
+/* Summary-card "since Last week" +/-% values only (NOT the table above) — red/green
+ in both light and dark mode, same as .trackingRateRed/.trackingRateGreen. Kept as
+ separate classes in case the two ever need to diverge again; currently identical
+ in behavior to the table's classes. */
+.summaryRateGreen {
+ color: green !important;
+}
+
+.summaryRateRed {
+ color: red !important;
+}
+
+:global(body.dark-mode) .summaryRateGreen,
+:global(body.bm-dashboard-dark) .summaryRateGreen,
+:global(body.dark-mode) .summaryRateGreen *,
+:global(body.bm-dashboard-dark) .summaryRateGreen * {
+ color: green !important;
+}
+
+:global(body.dark-mode) .summaryRateRed,
+:global(body.bm-dashboard-dark) .summaryRateRed,
+:global(body.dark-mode) .summaryRateRed *,
+:global(body.bm-dashboard-dark) .summaryRateRed * {
+ color: red !important;
+}
+
+/* The "Last week" summary line's leading +5% is plain text (not wrapped in a
+ colored span), styled red via .trackingRateValue's own color — but the same
+ global dark-mode rule above washes it out to white. Restore red here without
+ affecting the "since Last week" line's spans, which have their own color rules. */
+:global(body.dark-mode) .trackingRateValue,
+:global(body.bm-dashboard-dark) .trackingRateValue {
+ color: red !important;
}
/* Insights Section */
@@ -620,6 +677,11 @@
color: var(--color-text-dark);
}
+:global(body.dark-mode) .insightsPercentageDark,
+:global(body.bm-dashboard-dark) .insightsPercentageDark {
+ color: red !important;
+}
+
/* ---------- PDF/Print helpers ---------- */
.pageBreakBefore { break-before: always; }
.pageBreakAfter { break-after: always; }