import * as OptionsActions from '../../actions/options/options.actions'; import ModeCtrl from '../mode.controller'; import GridCtrl from '../board/grid.controller'; import TitlebarCtrl from '../board/titlebar.controller'; import MultiplesModel from '../../models/multiples.model'; import FactorsModel from '../../models/factors.model'; import AdditionModel from '../../models/addition.model'; import SubtractionModel from '../../models/subtraction.model'; let dispatch; const values = ['Multiples', 'Factors', 'Addition', 'Subtraction']; let selected = 0; const OptionsCtrl = { setDispatch: d => dispatch = d, getValues: () => values, update() { dispatch(OptionsActions.update(selected)); }, keyListener(e) { e.preventDefault(); if (e.keyCode === 32 || e.keyCode === 13) { let model; switch (selected) { case 0: model = MultiplesModel; break; case 1: model = FactorsModel; break; case 2: model = AdditionModel; break; case 3: model = SubtractionModel; break; } GridCtrl.setModel(model); TitlebarCtrl.setModel(model); ModeCtrl.board(); } else if (e.keyCode === 38) { selected--; if (selected === -1) { selected = values.length - 1; } this.update(); } else if (e.keyCode === 40) { selected++; if (selected === values.length) { selected = 0; } this.update(); } } }; export default OptionsCtrl;