docs: Fix dark mode logos in API reference (#1504)

This commit is contained in:
Shahed Nasser
2022-05-22 16:51:13 +02:00
committed by GitHub
parent 5428195af3
commit 5e0e5b90fc
@@ -9,18 +9,39 @@ import { useColorMode } from 'theme-ui'
export default function ColorModeToggler () { export default function ColorModeToggler () {
const [, setColorMode] = useColorMode() const [, setColorMode] = useColorMode()
function checkLocalStorage (currentTheme, toggleTheme) {
//check that theme local storage values are set correctly
let themeUiColorMode = window.localStorage.getItem('theme-ui-color-mode');
let theme = window.localStorage.getItem('theme')
if (!themeUiColorMode) {
themeUiColorMode = theme || currentTheme
window.localStorage.setItem('theme-ui-color-mode', themeUiColorMode);
setColorMode(themeUiColorMode);
}
if (!theme) {
theme = themeUiColorMode || currentTheme
window.localStorage.setItem('theme', theme);
toggleTheme(theme)
}
return theme || themeUiColorMode || currentTheme;
}
return ( return (
<ThemeToggler> <ThemeToggler>
{({ theme, toggleTheme }) => ( {({ theme, toggleTheme }) => {
const currentTheme = checkLocalStorage(theme, toggleTheme);
return (
<button onClick={() => { <button onClick={() => {
const mode = theme === 'dark' ? 'light' : 'dark'; const mode = currentTheme === 'dark' ? 'light' : 'dark';
toggleTheme(mode); toggleTheme(mode);
setColorMode(mode); setColorMode(mode);
}} className="dark-mode-toggler"> }} className="dark-mode-toggler">
{theme === "light" && <LightMode />} {currentTheme === "light" && <LightMode />}
{theme === "dark" && <DarkMode />} {currentTheme === "dark" && <DarkMode />}
</button> </button>
)} );
}}
</ThemeToggler> </ThemeToggler>
) )
} }