Skip to content

Instantly share code, notes, and snippets.

@suhas86
Created April 18, 2020 16:07
Show Gist options
  • Save suhas86/179d43e994d7f5fd845190d30728f6c8 to your computer and use it in GitHub Desktop.
Save suhas86/179d43e994d7f5fd845190d30728f6c8 to your computer and use it in GitHub Desktop.
import React, { Component, createContext } from "react";
type themeState = {
isDarkMode: boolean;
toggleTheme: any;
};
export const ThemeContext = createContext<themeState>({
isDarkMode: false,
toggleTheme: null,
});
class ThemeProvider extends Component<{}, themeState> {
state: themeState = {
isDarkMode: false,
toggleTheme: null,
};
constructor(props: {}) {
super(props);
this.toggleTheme = this.toggleTheme.bind(this);
}
toggleTheme() {
this.setState({ isDarkMode: !this.state.isDarkMode });
}
render() {
return (
<ThemeContext.Provider
value={{ ...this.state, toggleTheme: this.toggleTheme }}
>
{this.props.children}
</ThemeContext.Provider>
);
}
}
export default ThemeProvider;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment