From cdb64dbddd1262721132fb9158dbde2f978ff282 Mon Sep 17 00:00:00 2001 From: Tony Air Date: Tue, 10 Aug 2021 01:27:45 +0200 Subject: [PATCH] IMPR: Redux compatibilities --- src/js/store/components/index.js | 5 +++++ src/js/store/components/page-controls.js | 6 ++++++ src/js/store/configure.js | 8 ++++++++ src/js/store/index.js | 19 +++++++++++++++++++ src/js/store/reducers/counter.js | 16 ++++++++++++++++ src/js/store/reducers/index.js | 9 +++++++++ 6 files changed, 63 insertions(+) create mode 100644 src/js/store/components/index.js create mode 100644 src/js/store/components/page-controls.js create mode 100644 src/js/store/configure.js create mode 100644 src/js/store/index.js create mode 100644 src/js/store/reducers/counter.js create mode 100644 src/js/store/reducers/index.js diff --git a/src/js/store/components/index.js b/src/js/store/components/index.js new file mode 100644 index 0000000..9524b03 --- /dev/null +++ b/src/js/store/components/index.js @@ -0,0 +1,5 @@ +import PageControls from './page-controls'; + +export { + PageControls, +}; diff --git a/src/js/store/components/page-controls.js b/src/js/store/components/page-controls.js new file mode 100644 index 0000000..fc3ece7 --- /dev/null +++ b/src/js/store/components/page-controls.js @@ -0,0 +1,6 @@ +export default class PageControls { + constructor(store) { + console.log('page-controls init'); + console.log(store); + } +} diff --git a/src/js/store/configure.js b/src/js/store/configure.js new file mode 100644 index 0000000..0f2b048 --- /dev/null +++ b/src/js/store/configure.js @@ -0,0 +1,8 @@ +import { + createStore, +} from 'redux' +import reducers from './reducers' + +export default function configure() { + return createStore(reducers) +} diff --git a/src/js/store/index.js b/src/js/store/index.js new file mode 100644 index 0000000..35293fa --- /dev/null +++ b/src/js/store/index.js @@ -0,0 +1,19 @@ +import configure from './configure' +const store = configure(); + +/*import { + PageControls +} from './components'*/ + +//const pageControls = new PageControls(store) + +store.subscribe(() => console.log(store.getState())); +store.dispatch({ + type: 'counter/incremented', +}) +store.dispatch({ + type: 'counter/incremented', +}) +store.dispatch({ + type: 'counter/decremented', +}) diff --git a/src/js/store/reducers/counter.js b/src/js/store/reducers/counter.js new file mode 100644 index 0000000..2a49cbc --- /dev/null +++ b/src/js/store/reducers/counter.js @@ -0,0 +1,16 @@ +export default function counter(state = { + value: 0, +}, action) { + switch (action.type) { + case 'counter/incremented': + return { + value: state.value + 1, + } + case 'counter/decremented': + return { + value: state.value - 1, + } + default: + return state + } +} diff --git a/src/js/store/reducers/index.js b/src/js/store/reducers/index.js new file mode 100644 index 0000000..a6cfd29 --- /dev/null +++ b/src/js/store/reducers/index.js @@ -0,0 +1,9 @@ +import { + combineReducers, +} from 'redux' + +import counter from './counter'; + +export default combineReducers({ + counter, +});