Preview: http://dashboards.webkom.co/react/airframe
This commit is contained in:
Tomasz Owczarczyk
2019-08-15 00:54:44 +02:00
parent f975443095
commit 37092d1d6c
626 changed files with 56691 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Provider } from './ThemeContext';
export class ThemeProvider extends React.Component {
static propTypes = {
children: PropTypes.node,
initialStyle: PropTypes.string,
initialColor: PropTypes.string,
};
constructor(props) {
super(props);
this.state = {
style: 'light',
color: 'primary',
};
}
componentDidMount() {
const { initialStyle, initialColor } = this.props;
if (initialStyle) {
this.setState({ style: initialStyle });
}
if (initialColor) {
this.setState({ color: initialColor });
}
}
onChangeTheme(themeState) {
this.setState(themeState);
}
render() {
const { children } = this.props;
return (
<Provider
value={{
...this.state,
onChangeTheme: this.onChangeTheme.bind(this)
}}
>
{ children }
</Provider>
);
}
}