Skip to content

Commit 7344a89

Browse files
committed
Update to use configureStore
1 parent 2e4fdbd commit 7344a89

File tree

6 files changed

+52
-31
lines changed

6 files changed

+52
-31
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"bugs": "https://github.com/michaelmior/relational-playground/issues",
99
"dependencies": {
1010
"@michaelmior/js-sql-parser": "^1.3.0",
11+
"@reduxjs/toolkit": "^1.8.1",
1112
"@sentry/browser": "^6.18.2",
1213
"@sentry/cli": "^1.74.3",
1314
"@testing-library/jest-dom": "^5.16.4",

src/App.test.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import {MemoryRouter} from 'react-router';
4-
import {createStore} from 'redux';
4+
import {configureStore} from '@reduxjs/toolkit';
55
import {Provider} from 'react-redux';
6+
import produce from 'immer';
67
import App from './App';
78

89
/** @test {App} */
910
it('renders without crashing', () => {
1011
const div = document.createElement('div');
11-
const store = createStore(() => ({
12+
const initialState = {
1213
relexp: {expr: {}},
1314
data: {sourceData: {}},
14-
}));
15+
};
16+
const store = configureStore({
17+
reducer: {
18+
data: produce((state, action) => state, initialState),
19+
relexp: produce((state, action) => state, initialState),
20+
},
21+
preloadedState: initialState,
22+
});
1523
ReactDOM.render(
1624
<Provider store={store}>
1725
<MemoryRouter>

src/DataContainer.test.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,29 @@
11
import React from 'react';
22
import {Provider} from 'react-redux';
33
import {mount} from 'enzyme';
4-
import {createStore} from 'redux';
4+
import produce from 'immer';
5+
import {configureStore} from '@reduxjs/toolkit';
56

67
import DataContainer from './DataContainer';
78
import Table from './Table';
89

910
describe('DataContainer', () => {
1011
/** @test {DataContainer} */
1112
it('displays a table with the current data', () => {
12-
const mockStore = createStore((state) => state, {
13+
const initialState = {
1314
data: {
1415
current: {
1516
name: 'foo',
1617
columns: ['bar', 'baz'],
1718
data: [{bar: 1, baz: 2}],
1819
},
1920
},
21+
};
22+
const mockStore = configureStore({
23+
reducer: {
24+
data: produce((state, action) => state, initialState),
25+
},
26+
preloadedState: initialState,
2027
});
2128
const wrapper = mount(
2229
<Provider store={mockStore}>

src/modules/index.js

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/store.js

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
// @flow
2-
import {createStore, applyMiddleware, compose} from 'redux';
3-
import {routerMiddleware} from 'connected-react-router';
2+
import {configureStore} from '@reduxjs/toolkit';
3+
import {connectRouter, routerMiddleware} from 'connected-react-router';
44
import thunk from 'redux-thunk';
55
import {createBrowserHistory} from 'history';
6-
import createRootReducer from './modules';
6+
7+
import data from './modules/data';
8+
import relexp from './modules/relexp';
79

810
import type {BrowserHistory} from 'history';
911
import type {Action, Store} from 'redux';
1012

1113
export const history: BrowserHistory = createBrowserHistory();
1214

13-
const initialState = {};
1415
const enhancers = [];
1516
const middleware = [thunk, routerMiddleware(history)];
1617

@@ -23,12 +24,15 @@ if (process.env.NODE_ENV === 'development') {
2324
}
2425
}
2526

26-
const composedEnhancers = compose(applyMiddleware(...middleware), ...enhancers);
27+
const store: Store<{}, Action<{}>> = configureStore({
28+
reducer: {
29+
router: connectRouter(history),
2730

28-
const store: Store<{}, Action<{}>> = createStore(
29-
createRootReducer(history),
30-
initialState,
31-
composedEnhancers
32-
);
31+
data,
32+
relexp,
33+
},
34+
middleware: middleware,
35+
enhancers: enhancers,
36+
});
3337

3438
export default store;

yarn.lock

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2557,6 +2557,16 @@
25572557
prop-types "^15.6.1"
25582558
react-lifecycles-compat "^3.0.4"
25592559

2560+
"@reduxjs/toolkit@^1.8.1":
2561+
version "1.8.1"
2562+
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.1.tgz#94ee1981b8cf9227cda40163a04704a9544c9a9f"
2563+
integrity sha512-Q6mzbTpO9nOYRnkwpDlFOAbQnd3g7zj7CtHAZWz5SzE5lcV97Tf8f3SzOO8BoPOMYBFgfZaqTUZqgGu+a0+Fng==
2564+
dependencies:
2565+
immer "^9.0.7"
2566+
redux "^4.1.2"
2567+
redux-thunk "^2.4.1"
2568+
reselect "^4.1.5"
2569+
25602570
"@rollup/plugin-node-resolve@^7.1.1":
25612571
version "7.1.3"
25622572
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
@@ -9378,7 +9388,7 @@ [email protected]:
93789388
resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656"
93799389
integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==
93809390

9381-
immer@^9.0.12:
9391+
immer@^9.0.12, immer@^9.0.7:
93829392
version "9.0.12"
93839393
resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.12.tgz#2d33ddf3ee1d247deab9d707ca472c8c942a0f20"
93849394
integrity sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==
@@ -14758,7 +14768,7 @@ redux-thunk@^2.4.1:
1475814768
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.4.1.tgz#0dd8042cf47868f4b29699941de03c9301a75714"
1475914769
integrity sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==
1476014770

14761-
redux@^4.0.0, redux@^4.2.0:
14771+
redux@^4.0.0, redux@^4.1.2, redux@^4.2.0:
1476214772
version "4.2.0"
1476314773
resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13"
1476414774
integrity sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==
@@ -15018,6 +15028,11 @@ requires-port@^1.0.0:
1501815028
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
1501915029
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
1502015030

15031+
reselect@^4.1.5:
15032+
version "4.1.5"
15033+
resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6"
15034+
integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==
15035+
1502115036
resolve-cwd@^2.0.0:
1502215037
version "2.0.0"
1502315038
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"

0 commit comments

Comments
 (0)