UNPKG

scratch-gui

Version:

GraphicaL User Interface for creating and running Scratch 3.0 projects

52 lines (46 loc) 1.21 kB
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 };