2016-06-22 21:58:23 +02:00
|
|
|
import * as ActionTypes from '../../../constants';
|
2016-05-11 22:13:17 +02:00
|
|
|
|
|
|
|
const initialState = {
|
2016-07-08 20:57:22 +02:00
|
|
|
isPlaying: false,
|
2016-08-12 22:37:38 +02:00
|
|
|
isTextOutputPlaying: false,
|
2016-07-18 01:06:43 +02:00
|
|
|
selectedFile: '1',
|
|
|
|
consoleEvent: {
|
|
|
|
method: undefined,
|
|
|
|
arguments: []
|
2016-07-18 01:15:13 +02:00
|
|
|
},
|
2016-07-14 18:47:54 +02:00
|
|
|
modalIsVisible: false,
|
2016-07-21 06:33:41 +02:00
|
|
|
sidebarIsExpanded: true,
|
2016-08-01 19:55:49 +02:00
|
|
|
consoleIsExpanded: false,
|
|
|
|
preferencesIsVisible: false
|
2016-06-24 00:29:55 +02:00
|
|
|
};
|
2016-05-11 22:13:17 +02:00
|
|
|
|
|
|
|
const ide = (state = initialState, action) => {
|
2016-06-24 00:29:55 +02:00
|
|
|
switch (action.type) {
|
|
|
|
case ActionTypes.TOGGLE_SKETCH:
|
2016-07-11 21:22:29 +02:00
|
|
|
return Object.assign({}, state, { isPlaying: !state.isPlaying });
|
2016-06-24 00:29:55 +02:00
|
|
|
case ActionTypes.START_SKETCH:
|
2016-07-11 21:22:29 +02:00
|
|
|
return Object.assign({}, state, { isPlaying: true });
|
2016-06-24 00:29:55 +02:00
|
|
|
case ActionTypes.STOP_SKETCH:
|
2016-07-11 21:22:29 +02:00
|
|
|
return Object.assign({}, state, { isPlaying: false });
|
2016-08-12 22:37:38 +02:00
|
|
|
case ActionTypes.START_TEXT_OUTPUT:
|
|
|
|
return Object.assign({}, state, { isTextOutputPlaying: true });
|
|
|
|
case ActionTypes.STOP_TEXT_OUTPUT:
|
|
|
|
return Object.assign({}, state, { isTextOutputPlaying: false });
|
2016-07-08 20:57:22 +02:00
|
|
|
case ActionTypes.SET_SELECTED_FILE:
|
|
|
|
case ActionTypes.SET_PROJECT:
|
|
|
|
case ActionTypes.NEW_PROJECT:
|
|
|
|
return Object.assign({}, state, { selectedFile: action.selectedFile });
|
2016-07-18 01:06:43 +02:00
|
|
|
case ActionTypes.CONSOLE_EVENT:
|
|
|
|
return Object.assign({}, state, { consoleEvent: action.event });
|
2016-07-13 22:13:28 +02:00
|
|
|
case ActionTypes.SHOW_MODAL:
|
|
|
|
return Object.assign({}, state, { modalIsVisible: true });
|
|
|
|
case ActionTypes.HIDE_MODAL:
|
|
|
|
return Object.assign({}, state, { modalIsVisible: false });
|
2016-07-14 18:47:54 +02:00
|
|
|
case ActionTypes.COLLAPSE_SIDEBAR:
|
|
|
|
return Object.assign({}, state, { sidebarIsExpanded: false });
|
|
|
|
case ActionTypes.EXPAND_SIDEBAR:
|
|
|
|
return Object.assign({}, state, { sidebarIsExpanded: true });
|
2016-07-21 06:33:41 +02:00
|
|
|
case ActionTypes.COLLAPSE_CONSOLE:
|
|
|
|
return Object.assign({}, state, { consoleIsExpanded: false });
|
|
|
|
case ActionTypes.EXPAND_CONSOLE:
|
|
|
|
return Object.assign({}, state, { consoleIsExpanded: true });
|
2016-08-01 19:55:49 +02:00
|
|
|
case ActionTypes.OPEN_PREFERENCES:
|
|
|
|
return Object.assign({}, state, { preferencesIsVisible: true });
|
|
|
|
case ActionTypes.CLOSE_PREFERENCES:
|
|
|
|
return Object.assign({}, state, { preferencesIsVisible: false });
|
2016-08-12 18:45:26 +02:00
|
|
|
case ActionTypes.RESET_PROJECT:
|
|
|
|
return initialState;
|
2016-06-24 00:29:55 +02:00
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
};
|
2016-05-11 22:13:17 +02:00
|
|
|
|
2016-06-24 00:29:55 +02:00
|
|
|
export default ide;
|