Skip to content

Instantly share code, notes, and snippets.

@gladchinda
Created May 4, 2020 18:27
Show Gist options
  • Save gladchinda/687f40a1859c9691ab92f05176c5dbe1 to your computer and use it in GitHub Desktop.
Save gladchinda/687f40a1859c9691ab92f05176c5dbe1 to your computer and use it in GitHub Desktop.
import React, { useState, useCallback } from 'react';
import DarkModeToggleSwitch from './DarkModeToggleSwitch';
import ThemeContext, { DARK_THEME, LIGHT_THEME, DarkMode } from './theme';
export default function App () {
const [ dark, setDark ] = useState(DarkMode.getSetting);
const theme = dark ? DARK_THEME : LIGHT_THEME;
const toggleDarkMode = useCallback(function () {
setDark(prevState => {
const newState = !prevState;
DarkMode.updateSetting(newState);
return newState;
});
}, []);
return <>
<div>
<DarkModeToggleSwitch on={dark} toggle={toggleDarkMode}/>
</div>
<ThemeContext.Provider value={theme}>
{/* Render rest of app (consume the theme context) */}
</ThemeContext.Provider>
</>
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment