scratch-gui
Version:
GraphicaL User Interface for creating and running Scratch 3.0 projects
52 lines (46 loc) • 1.21 kB
JavaScript
const OPEN_MENU = 'scratch-gui/menus/OPEN_MENU';
const CLOSE_MENU = 'scratch-gui/menus/CLOSE_MENU';
const MENU_FILE = 'fileMenu';
const MENU_EDIT = 'editMenu';
const initialState = {
[MENU_FILE]: false,
[MENU_EDIT]: false
};
const reducer = function (state, action) {
if (typeof state === 'undefined') state = initialState;
switch (action.type) {
case OPEN_MENU:
return Object.assign({}, state, {
[action.menu]: true
});
case CLOSE_MENU:
return Object.assign({}, state, {
[action.menu]: false
});
default:
return state;
}
};
const openMenu = menu => ({
type: OPEN_MENU,
menu: menu
});
const closeMenu = menu => ({
type: CLOSE_MENU,
menu: menu
});
const openFileMenu = () => openMenu(MENU_FILE);
const closeFileMenu = () => closeMenu(MENU_FILE);
const fileMenuOpen = state => state.menus[MENU_FILE];
const openEditMenu = () => openMenu(MENU_EDIT);
const closeEditMenu = () => closeMenu(MENU_EDIT);
const editMenuOpen = state => state.menus[MENU_EDIT];
export {
reducer as default,
openFileMenu,
closeFileMenu,
openEditMenu,
closeEditMenu,
fileMenuOpen,
editMenuOpen
};