diff --git a/client/modules/App/components/ThemeProvider.jsx b/client/modules/App/components/ThemeProvider.jsx index a168d856d9..8bbef6931e 100644 --- a/client/modules/App/components/ThemeProvider.jsx +++ b/client/modules/App/components/ThemeProvider.jsx @@ -1,23 +1,18 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { connect } from 'react-redux'; +import { useSelector } from 'react-redux'; import { ThemeProvider } from 'styled-components'; +import theme from '../../../theme'; -import theme, { Theme } from '../../../theme'; - -const Provider = ({ children, currentTheme }) => ( - {children} -); +const Provider = ({ children }) => { + const currentTheme = useSelector((state) => state.preferences.theme); + return ( + {children} + ); +}; Provider.propTypes = { - children: PropTypes.node.isRequired, - currentTheme: PropTypes.oneOf(Object.keys(Theme)).isRequired + children: PropTypes.node.isRequired }; -function mapStateToProps(state) { - return { - currentTheme: state.preferences.theme - }; -} - -export default connect(mapStateToProps)(Provider); +export default Provider; diff --git a/client/modules/IDE/components/Preferences/Preferences.unit.test.jsx b/client/modules/IDE/components/Preferences/Preferences.unit.test.jsx index 7f13eb4bad..55f9827d23 100644 --- a/client/modules/IDE/components/Preferences/Preferences.unit.test.jsx +++ b/client/modules/IDE/components/Preferences/Preferences.unit.test.jsx @@ -1,5 +1,6 @@ import React from 'react'; import { act, fireEvent, reduxRender, screen } from '../../../../test-utils'; +import { initialState } from '../../reducers/preferences'; import Preferences from './index'; import * as PreferencesActions from '../../actions/preferences'; @@ -15,7 +16,10 @@ describe('', () => { const subject = (initialPreferences = {}) => reduxRender(, { initialState: { - preferences: initialPreferences + preferences: { + ...initialState, + ...initialPreferences + } } }); diff --git a/client/modules/IDE/reducers/preferences.js b/client/modules/IDE/reducers/preferences.js index ed029620e1..087d927aed 100644 --- a/client/modules/IDE/reducers/preferences.js +++ b/client/modules/IDE/reducers/preferences.js @@ -1,6 +1,6 @@ import * as ActionTypes from '../../../constants'; -const initialState = { +export const initialState = { fontSize: 18, autosave: true, linewrap: true, diff --git a/client/testData/testReduxStore.js b/client/testData/testReduxStore.js index 6af5989a66..88b60abf1d 100644 --- a/client/testData/testReduxStore.js +++ b/client/testData/testReduxStore.js @@ -1,4 +1,5 @@ import { initialState as initialFilesState } from '../modules/IDE/reducers/files'; +import { initialState as initialPrefState } from '../modules/IDE/reducers/preferences'; const mockProjects = [ { @@ -46,20 +47,7 @@ const initialTestState = { parentId: undefined }, files: initialFilesState(), - preferences: { - fontSize: 18, - autosave: true, - linewrap: true, - lineNumbers: true, - lintWarning: false, - textOutput: false, - gridOutput: false, - theme: 'light', - autorefresh: false, - language: 'en-US', - autocloseBracketsQuotes: true, - autocompleteHinter: false - }, + preferences: initialPrefState, user: { email: 'happydog@example.com', username: 'happydog',