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, +});