From c2488dce3ed8811c74da3a6dbec15d922b291d5a Mon Sep 17 00:00:00 2001 From: Jack Reed <phillipjreed@gmail.com> Date: Wed, 30 Jan 2019 14:47:23 -0700 Subject: [PATCH] proof of concept using light and dark themes --- src/components/App.js | 31 ++++++++++++++++++++++--------- src/config/settings.js | 1 + src/containers/App.js | 1 + 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/components/App.js b/src/components/App.js index 86b1f1d85..05a4532b4 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -1,6 +1,7 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import CssBaseline from '@material-ui/core/CssBaseline'; +import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles'; import Fullscreen from 'react-fullscreen-crossbrowser'; import WorkspaceControlPanel from './WorkspaceControlPanel'; import Workspace from '../containers/Workspace'; @@ -16,23 +17,35 @@ class App extends Component { * @return {String} - HTML markup for the component */ render() { - const { workspace, setWorkspaceFullscreen } = this.props; + const { workspace, setWorkspaceFullscreen, config } = this.props; + const theme = createMuiTheme({ + palette: { + type: config.theme, + }, + typography: { + useNextVariants: true, + }, + }); + return ( <div className={ns('app')}> - <CssBaseline /> - <Fullscreen - enabled={workspace.isFullscreenEnabled} - onChange={isFullscreenEnabled => setWorkspaceFullscreen(isFullscreenEnabled)} - > - <Workspace /> - </Fullscreen> - <WorkspaceControlPanel /> + <MuiThemeProvider theme={theme}> + <CssBaseline /> + <Fullscreen + enabled={workspace.isFullscreenEnabled} + onChange={isFullscreenEnabled => setWorkspaceFullscreen(isFullscreenEnabled)} + > + <Workspace /> + </Fullscreen> + <WorkspaceControlPanel /> + </MuiThemeProvider> </div> ); } } App.propTypes = { + config: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types workspace: PropTypes.object, // eslint-disable-line react/forbid-prop-types setWorkspaceFullscreen: PropTypes.func, }; diff --git a/src/config/settings.js b/src/config/settings.js index fe3312aa2..c8c6f943c 100644 --- a/src/config/settings.js +++ b/src/config/settings.js @@ -1,4 +1,5 @@ export default { + theme: 'light', // dark also available windows: [], thumbnailNavigation: { defaultPosition: 'bottom', diff --git a/src/containers/App.js b/src/containers/App.js index dd22661a5..aa351221c 100644 --- a/src/containers/App.js +++ b/src/containers/App.js @@ -10,6 +10,7 @@ import App from '../components/App'; */ const mapStateToProps = state => ( { + config: state.config, workspace: state.workspace, manifests: state.manifests, } -- GitLab