Add dark mode support with persisted OS-aware theme selection

This commit is contained in:
2026-04-21 19:30:29 +02:00
parent 4f91e8fdd3
commit fef8f60ee2
11 changed files with 293 additions and 51 deletions

View File

@@ -17,6 +17,7 @@ import type { LegendPayload } from "recharts/types/component/DefaultLegendConten
import type { TooltipContentProps } from "recharts/types/component/Tooltip";
import { tokens, makeStyles, Text } from "@fluentui/react-components";
import { CHART_PALETTE, resolveFluentToken } from "../utils/chartTheme";
import { useThemeMode } from "../providers/ThemeProvider";
import { ChartTooltip } from "./ChartTooltip";
// ---------------------------------------------------------------------------
@@ -134,10 +135,14 @@ export const TopCountriesPieChart = memo(function TopCountriesPieChart({
countryNames,
}: TopCountriesPieChartProps): React.JSX.Element {
const styles = useStyles();
const { colorMode } = useThemeMode();
const resolvedPalette = useMemo(
() => CHART_PALETTE.map(resolveFluentToken),
[],
() => {
void colorMode;
return CHART_PALETTE.map(resolveFluentToken);
},
[colorMode],
);
const slices = buildSlices(countries, countryNames, resolvedPalette);
const total = slices.reduce((sum, s) => sum + s.value, 0);