const OPEN_MENU = 'scratch-gui/menus/OPEN_MENU'; const CLOSE_MENU = 'scratch-gui/menus/CLOSE_MENU'; const MENU_ABOUT = 'aboutMenu'; const MENU_ACCOUNT = 'accountMenu'; const MENU_FILE = 'fileMenu'; const MENU_EDIT = 'editMenu'; const MENU_LANGUAGE = 'languageMenu'; const MENU_LOGIN = 'loginMenu'; const MENU_ERRORS = 'errorMenu'; const initialState = { [MENU_ABOUT]: false, [MENU_ACCOUNT]: false, [MENU_FILE]: false, [MENU_EDIT]: false, [MENU_LANGUAGE]: false, [MENU_LOGIN]: false, [MENU_ERRORS]: 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 openAboutMenu = () => openMenu(MENU_ABOUT); const closeAboutMenu = () => closeMenu(MENU_ABOUT); const aboutMenuOpen = state => state.scratchGui.menus[MENU_ABOUT]; const openAccountMenu = () => openMenu(MENU_ACCOUNT); const closeAccountMenu = () => closeMenu(MENU_ACCOUNT); const accountMenuOpen = state => state.scratchGui.menus[MENU_ACCOUNT]; const openFileMenu = () => openMenu(MENU_FILE); const closeFileMenu = () => closeMenu(MENU_FILE); const fileMenuOpen = state => state.scratchGui.menus[MENU_FILE]; const openEditMenu = () => openMenu(MENU_EDIT); const closeEditMenu = () => closeMenu(MENU_EDIT); const editMenuOpen = state => state.scratchGui.menus[MENU_EDIT]; const openLanguageMenu = () => openMenu(MENU_LANGUAGE); const closeLanguageMenu = () => closeMenu(MENU_LANGUAGE); const languageMenuOpen = state => state.scratchGui.menus[MENU_LANGUAGE]; const openLoginMenu = () => openMenu(MENU_LOGIN); const closeLoginMenu = () => closeMenu(MENU_LOGIN); const loginMenuOpen = state => state.scratchGui.menus[MENU_LOGIN]; const openErrorsMenu = () => openMenu(MENU_ERRORS); const closeErrorsMenu = () => closeMenu(MENU_ERRORS); const errorsMenuOpen = state => state.scratchGui.menus[MENU_ERRORS]; export { reducer as default, initialState as menuInitialState, openAboutMenu, closeAboutMenu, aboutMenuOpen, openAccountMenu, closeAccountMenu, accountMenuOpen, openFileMenu, closeFileMenu, fileMenuOpen, openEditMenu, closeEditMenu, editMenuOpen, openLanguageMenu, closeLanguageMenu, languageMenuOpen, openLoginMenu, closeLoginMenu, loginMenuOpen, openErrorsMenu, closeErrorsMenu, errorsMenuOpen };