From cf2f3a25df9b27986454d84fd965d3cfdf0c2d93 Mon Sep 17 00:00:00 2001 From: Alf Eaton <eaton.alf@gmail.com> Date: Fri, 27 Oct 2017 09:48:49 +0100 Subject: [PATCH] Add ThemeProvider to Root fixes #53 This imports `ThemeProvider` from `react-css-themr` and adds it to the client app, using a `theme` parameter that will contain the theme object. --- package.json | 1 + src/components/Root.js | 23 +++++++++++------------ yarn.lock | 11 +++++++++++ 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 9cef3bbb7..129f35bf7 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "prop-types": "^15.5.8", "pubsweet-component-login": "^0.5.2", "react": "^15.4.4", + "react-css-themr": "^2.1.2", "react-redux": "^5.0.2", "react-router-dom": "^4.2.2", "react-router-redux": "next", diff --git a/src/components/Root.js b/src/components/Root.js index 6392126cb..f40aafc77 100644 --- a/src/components/Root.js +++ b/src/components/Root.js @@ -2,22 +2,21 @@ import React from 'react' import { ConnectedRouter } from 'react-router-redux' import { Provider } from 'react-redux' import PropTypes from 'prop-types' +import { ThemeProvider } from 'react-css-themr' -export default class Root extends React.Component { - render() { - const { store, history, routes } = this.props - return ( - <Provider store={store}> - <div> - <ConnectedRouter history={history}>{routes}</ConnectedRouter> - </div> - </Provider> - ) - } -} +const Root = ({ store, history, routes, theme }) => ( + <Provider store={store}> + <ConnectedRouter history={history}> + <ThemeProvider theme={theme}>{routes}</ThemeProvider> + </ConnectedRouter> + </Provider> +) Root.propTypes = { routes: PropTypes.node.isRequired, history: PropTypes.object.isRequired, store: PropTypes.object.isRequired, + theme: PropTypes.object.isRequired, } + +export default Root diff --git a/yarn.lock b/yarn.lock index fc21a15e7..2860c32ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2100,6 +2100,10 @@ hoek@4.x.x: version "4.2.0" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" +hoist-non-react-statics@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" + hoist-non-react-statics@^2.2.1, hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" @@ -3614,6 +3618,13 @@ react-bootstrap@^0.31.3: uncontrollable "^4.1.0" warning "^3.0.0" +react-css-themr@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/react-css-themr/-/react-css-themr-2.1.2.tgz#e017514e471c232f43a754a55b49d81faf5dafb8" + dependencies: + hoist-non-react-statics "^1.2.0" + invariant "^2.2.1" + react-dom@^15.6.1: version "15.6.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730" -- GitLab