diff --git a/actions/board/board.actions.js b/actions/board/board.actions.js
deleted file mode 100644
index c8a4f4f..0000000
--- a/actions/board/board.actions.js
+++ /dev/null
@@ -1,35 +0,0 @@
-export const BOARD_ACTION = 'BOARD_ACTION';
-export const GENERATE = 'GENERATE';
-export const UPDATE = 'UPDATE';
-export const HIDE = 'HIDE';
-export const SHOW = 'SHOW';
-export const NEXT_LEVEL = 'NEXT_LEVEL';
-
-export const generateValues = () => ({
- type: BOARD_ACTION,
- action: GENERATE
-});
-
-export const updateValue = (index, value) => ({
- type: BOARD_ACTION,
- action: UPDATE,
- index: index,
- value: value
-});
-
-export const showValue = (index) => ({
- type: BOARD_ACTION,
- action: SHOW,
- index: index
-});
-
-export const hideValue = (index) => ({
- type: BOARD_ACTION,
- action: HIDE,
- index: index
-});
-
-export const nextLevel = () => ({
- type: BOARD_ACTION,
- action: NEXT_LEVEL
-});
diff --git a/actions/board/grid.actions.js b/actions/board/grid.actions.js
index 9413657..e7b5cc0 100644
--- a/actions/board/grid.actions.js
+++ b/actions/board/grid.actions.js
@@ -1,11 +1,7 @@
export const GRID_ACTION = 'GRID_ACTION';
-export const UPDATE = 'UPDATE';
+export const UPDATE = 'GRID_UPDATE';
-const GridActions = {
- update: () => ({
- type: GRID_ACTION,
- action: UPDATE
- })
-};
-
-export default GridActions;
+export const update = () => ({
+ type: GRID_ACTION,
+ action: UPDATE
+});
diff --git a/actions/board/muncher.actions.js b/actions/board/muncher.actions.js
index 4acb013..a5b4836 100644
--- a/actions/board/muncher.actions.js
+++ b/actions/board/muncher.actions.js
@@ -1,5 +1,5 @@
export const MUNCHER_ACTION = 'MUNCHER_ACTION';
-export const UPDATE = 'UPDATE';
+export const UPDATE = 'MUNCHER_UPDATE';
export const update = () => ({
type: MUNCHER_ACTION,
diff --git a/actions/board/scorebar.actions.js b/actions/board/scorebar.actions.js
index 766d646..bd442ce 100644
--- a/actions/board/scorebar.actions.js
+++ b/actions/board/scorebar.actions.js
@@ -1,6 +1,6 @@
export const SCOREBAR_ACTION = 'SCOREBAR_ACTION';
-export const MUNCH_SUCCEEDED = 'MUNCH_SUCCEEDED';
-export const MUNCH_FAILED = 'MUNCH_FAILED';
+export const MUNCH_SUCCEEDED = 'SCOREBAR_MUNCH_SUCCEEDED';
+export const MUNCH_FAILED = 'SCOREBAR_MUNCH_FAILED';
export const munchSucceeded = () => ({
type: SCOREBAR_ACTION,
diff --git a/actions/board/titlebar.actions.js b/actions/board/titlebar.actions.js
new file mode 100644
index 0000000..302e24d
--- /dev/null
+++ b/actions/board/titlebar.actions.js
@@ -0,0 +1,8 @@
+export const TITLEBAR_ACTION = 'TITLEBAR_ACTION';
+export const UPDATE = 'TITLEBAR_UPDATE';
+
+export const update = (text) => ({
+ type: TITLEBAR_ACTION,
+ action: UPDATE,
+ text: text
+});
diff --git a/actions/board/troggle.actions.js b/actions/board/troggle.actions.js
index f2545d8..b31247b 100644
--- a/actions/board/troggle.actions.js
+++ b/actions/board/troggle.actions.js
@@ -1,7 +1,7 @@
export const TROGGLE_ACTION = 'TROGGLE_ACTION';
-export const CREATE = 'CREATE';
-export const MOVE = 'MOVE';
-export const CLEAR_ALL = 'CLEAR_ALL';
+export const CREATE = 'TROGGLE_CREATE';
+export const MOVE = 'TROGGLE_MOVE';
+export const CLEAR_ALL = 'TROGGLE_CLEAR_ALL';
export const create = (index) => ({
type: TROGGLE_ACTION,
diff --git a/components/board/titlebar.component.js b/components/board/titlebar.component.js
index a8d1cff..f1a243f 100644
--- a/components/board/titlebar.component.js
+++ b/components/board/titlebar.component.js
@@ -1,9 +1,18 @@
require('../../sass/board/titlebar.scss');
import { Component } from 'react';
+import { connect } from 'react-redux';
-export default class Titlebar extends Component {
+export class Titlebar extends Component {
render() {
- return (
Connect titlebar
);
+ return ({this.props.title}
);
};
};
+
+const select = (state) => {
+ return {
+ title: state.titlebar
+ }
+};
+
+export default connect(select)(Titlebar);
diff --git a/controllers/board.controller.js b/controllers/board.controller.js
index 12a1659..3b5cfd1 100644
--- a/controllers/board.controller.js
+++ b/controllers/board.controller.js
@@ -7,8 +7,9 @@ import TroggleCtrl from './troggle.controller';
import MessageCtrl from './message.controller';
import MuncherCtrl from './muncher.controller';
import GridCtrl from './grid.controller';
+import TitlebarCtrl from './titlebar.controller';
-const level = 0;
+let level = -1;
let dispatch;
const BoardCtrl = {
@@ -16,6 +17,7 @@ const BoardCtrl = {
dispatch = d;
GridCtrl.setDispatch(d);
MuncherCtrl.setDispatch(d);
+ TitlebarCtrl.setDispatch(d);
},
munch() {
@@ -50,7 +52,9 @@ const BoardCtrl = {
},
nextLevel() {
+ level++;
GridCtrl.generateValues(level);
+ TitlebarCtrl.setTitle(level);
// TroggleCtrl.clearAll(this.props.dispatch);
// TroggleCtrl.createTroggles(this.props.dispatch);
},
diff --git a/controllers/grid.controller.js b/controllers/grid.controller.js
index c5b7b0e..3327fde 100644
--- a/controllers/grid.controller.js
+++ b/controllers/grid.controller.js
@@ -1,4 +1,4 @@
-import GridActions from '../actions/board/grid.actions';
+import * as GridActions from '../actions/board/grid.actions';
import ValuesCtrl from './values.controller';
import { SETTINGS } from '../App';
diff --git a/controllers/titlebar.controller.js b/controllers/titlebar.controller.js
new file mode 100644
index 0000000..f046911
--- /dev/null
+++ b/controllers/titlebar.controller.js
@@ -0,0 +1,15 @@
+import * as TitlebarActions from '../actions/board/titlebar.actions';
+import ValuesCtrl from './values.controller';
+
+let dispatch;
+
+const TitlebarCtrl = {
+ setDispatch: d => dispatch = d,
+
+ setTitle: (level) => {
+ const title = ValuesCtrl.getTitle(level);
+ dispatch(TitlebarActions.update(title));
+ }
+};
+
+export default TitlebarCtrl;
diff --git a/controllers/values.controller.js b/controllers/values.controller.js
index e7c29db..2f104e4 100644
--- a/controllers/values.controller.js
+++ b/controllers/values.controller.js
@@ -20,7 +20,7 @@ const ValuesCtrl = {
return values;
},
- getDescription(level) {
+ getTitle(level) {
return `Multiples of ${level + 2}`;
},
diff --git a/index.js b/index.js
index 32b0cea..5393bd9 100644
--- a/index.js
+++ b/index.js
@@ -7,22 +7,22 @@ import { Provider } from 'react-redux';
import App from './App';
import modeReducer from './reducers/mode.reducer';
import newgameReducer from './reducers/welcome/new-game.reducer';
-import boardReducer from './reducers/board/board.reducer';
import gridReducer from './reducers/board/grid.reducer';
import muncherReducer from './reducers/board/muncher.reducer';
import scorebarReducer from './reducers/board/scorebar.reducer';
import messageReducer from './reducers/board/message.reducer';
import troggleReducer from './reducers/board/troggle.reducer';
+import titlebarReducer from './reducers/board/titlebar.reducer';
const reducers = combineReducers({
mode: modeReducer,
newgame: newgameReducer,
muncher: muncherReducer,
scorebar: scorebarReducer,
- board: boardReducer,
message: messageReducer,
troggles: troggleReducer,
- grid: gridReducer
+ grid: gridReducer,
+ titlebar: titlebarReducer
});
const store = createStore(reducers);
diff --git a/reducers/board/board.reducer.js b/reducers/board/board.reducer.js
deleted file mode 100644
index 9aad4fe..0000000
--- a/reducers/board/board.reducer.js
+++ /dev/null
@@ -1,42 +0,0 @@
-const Immutable = require('immutable');
-
-import * as BoardActions from '../../actions/board/board.actions';
-import ValuesController from '../../controllers/values.controller.js';
-import { SETTINGS } from '../../App';
-
-const initial = {
- level: -1,
- values: [],
- title: 'Setting up...'
-};
-
-const count = SETTINGS.GRID_WIDTH * SETTINGS.GRID_HEIGHT;
-
-const reducer = (state = initial, action) => {
- if (action.type !== BoardActions.BOARD_ACTION) {
- return state;
- }
-
- switch (action.action) {
- case BoardActions.UPDATE:
- return Immutable.fromJS(state).setIn(['values', action.index, 'value'], action.value).toJS();
-
- case BoardActions.SHOW:
- return Immutable.fromJS(state).setIn(['values', action.index, 'show'], true).toJS();
-
- case BoardActions.HIDE:
- return Immutable.fromJS(state).setIn(['values', action.index, 'show'], false).toJS();
-
- case BoardActions.NEXT_LEVEL:
- const lvl = state.level + 1;
- return Immutable.Map(state)
- .set('level', lvl)
- .set('title', ValuesController.getDescription(lvl))
- .set('values', ValuesController.generate(count, lvl))
- .toObject();
- }
-
- return state;
-};
-
-export default reducer;
diff --git a/reducers/board/titlebar.reducer.js b/reducers/board/titlebar.reducer.js
new file mode 100644
index 0000000..fd7453e
--- /dev/null
+++ b/reducers/board/titlebar.reducer.js
@@ -0,0 +1,19 @@
+const Immutable = require('immutable');
+
+import * as TitlebarActions from '../../actions/board/titlebar.actions';
+
+const initial = '';
+
+const reducer = (state = initial, action) => {
+ if (action.type !== TitlebarActions.TITLEBAR_ACTION) {
+ return state;
+ }
+
+ if (action.action === TitlebarActions.UPDATE) {
+ return action.text;
+ }
+
+ return state;
+};
+
+export default reducer;