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',