Skip to content

Commit

Permalink
fix: use isGlobalDarkMode to detect changes in theme context
Browse files Browse the repository at this point in the history
  • Loading branch information
rayanfer32 committed Jan 17, 2023
1 parent bb84a8d commit 02cb9ca
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
10 changes: 6 additions & 4 deletions src/components/common/NE_Chart/ChartApexPie/apex_pie.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import { initialOptions } from './essentials';
function PieChart({ series, options, labels, ...rest }) {
const windowSize = useWindowSize();

const [isDarkMode] = useDarkMode();
const [, , isGlobalDarkMode] = useDarkMode();
const [_series, setSeries] = useState(series);
const [_options, setOptions] = useState(
options ||
initialOptions({
labels,
theme: isDarkMode ? TYPES.THEME.DARK : TYPES.THEME.LIGHT,
theme: isGlobalDarkMode ? TYPES.THEME.DARK : TYPES.THEME.LIGHT,
})
);

Expand All @@ -31,14 +31,16 @@ function PieChart({ series, options, labels, ...rest }) {
// * updates the chart when dark mode changes
function updateChart() {
let newOptions = { ..._options };
newOptions.theme.mode = isDarkMode ? TYPES.THEME.DARK : TYPES.THEME.LIGHT;
newOptions.theme.mode = isGlobalDarkMode
? TYPES.THEME.DARK
: TYPES.THEME.LIGHT;
setOptions(newOptions);
}

// * update chart on theme change
useEffect(() => {
updateChart();
}, [isDarkMode]);
}, [isGlobalDarkMode]);

return (
<Chart
Expand Down
6 changes: 4 additions & 2 deletions src/hooks/useDarkMode/useDarkMode.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ import { useMediaQuery } from '../useMediaQuery/useMediaQuery';
export function useDarkMode() {
const { appContext: sharedState, setAppContext: setState } = useAppContext();
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
const isGlobalDarkMode = sharedState.theme === TYPES.THEME.DARK;

const [darkMode, setDarkMode] = useState(() => {
if (sharedState.theme == null) {
return prefersDarkMode;
} else {
return sharedState.theme === TYPES.THEME.DARK;
return;
}
});

Expand All @@ -27,5 +29,5 @@ export function useDarkMode() {
setGlobalDarkMode(darkMode);
}, [darkMode]);

return [darkMode, setDarkMode];
return [darkMode, setDarkMode, isGlobalDarkMode];
}

0 comments on commit 02cb9ca

Please sign in to comment.