UNPKG

@spartacus/core

Version:

Spartacus - the core framework

35 lines 6.4 kB
import { GlobalMessageActions } from '../actions/index'; export const initialState = { entities: {}, }; export function reducer(state = initialState, action) { switch (action.type) { case GlobalMessageActions.ADD_MESSAGE: { const message = action.payload; if (state.entities[message.type] === undefined) { return Object.assign(Object.assign({}, state), { entities: Object.assign(Object.assign({}, state.entities), { [message.type]: [message.text] }) }); } else { const currentMessages = state.entities[message.type]; return Object.assign(Object.assign({}, state), { entities: Object.assign(Object.assign({}, state.entities), { [message.type]: [...currentMessages, message.text] }) }); } } case GlobalMessageActions.REMOVE_MESSAGE: { const msgType = action.payload.type; const msgIndex = action.payload.index; if (Object.keys(state.entities).length === 0 || !state.entities[msgType]) { return state; } const messages = [...state.entities[msgType]]; messages.splice(msgIndex, 1); return Object.assign(Object.assign({}, state), { entities: Object.assign(Object.assign({}, state.entities), { [msgType]: messages }) }); } case GlobalMessageActions.REMOVE_MESSAGES_BY_TYPE: { const entities = Object.assign(Object.assign({}, state.entities), { [action.payload]: [] }); return Object.assign(Object.assign({}, state), { entities }); } } return state; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLW1lc3NhZ2UucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2dsb2JhbC1tZXNzYWdlL3N0b3JlL3JlZHVjZXJzL2dsb2JhbC1tZXNzYWdlLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHeEQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUF1QjtJQUM5QyxRQUFRLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLFVBQVUsT0FBTyxDQUNyQixLQUFLLEdBQUcsWUFBWSxFQUNwQixNQUFnRDtJQUVoRCxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDbkIsS0FBSyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBa0IsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUU5QyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDOUMsdUNBQ0ssS0FBSyxLQUNSLFFBQVEsa0NBQ0gsS0FBSyxDQUFDLFFBQVEsS0FDakIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BRWhDO2FBQ0g7aUJBQU07Z0JBQ0wsTUFBTSxlQUFlLEdBQW1CLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyRSx1Q0FDSyxLQUFLLEtBQ1IsUUFBUSxrQ0FDSCxLQUFLLENBQUMsUUFBUSxLQUNqQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FFcEQ7YUFDSDtTQUNGO1FBRUQsS0FBSyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN4QyxNQUFNLE9BQU8sR0FBc0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdkQsTUFBTSxRQUFRLEdBQVcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDOUMsSUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDeEMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUN4QjtnQkFDQSxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM5QyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUU3Qix1Q0FDSyxLQUFLLEtBQ1IsUUFBUSxrQ0FDSCxLQUFLLENBQUMsUUFBUSxLQUNqQixDQUFDLE9BQU8sQ0FBQyxFQUFFLFFBQVEsT0FFckI7U0FDSDtRQUVELEtBQUssb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNqRCxNQUFNLFFBQVEsbUNBQ1QsS0FBSyxDQUFDLFFBQVEsS0FDakIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxHQUNyQixDQUFDO1lBQ0YsdUNBQ0ssS0FBSyxLQUNSLFFBQVEsSUFDUjtTQUNIO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGFibGUgfSBmcm9tICcuLi8uLi8uLi9pMThuL3RyYW5zbGF0YWJsZSc7XG5pbXBvcnQge1xuICBHbG9iYWxNZXNzYWdlLFxuICBHbG9iYWxNZXNzYWdlVHlwZSxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2dsb2JhbC1tZXNzYWdlLm1vZGVsJztcbmltcG9ydCB7IEdsb2JhbE1lc3NhZ2VBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9pbmRleCc7XG5pbXBvcnQgeyBHbG9iYWxNZXNzYWdlU3RhdGUgfSBmcm9tICcuLi9nbG9iYWwtbWVzc2FnZS1zdGF0ZSc7XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IEdsb2JhbE1lc3NhZ2VTdGF0ZSA9IHtcbiAgZW50aXRpZXM6IHt9LFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZXIoXG4gIHN0YXRlID0gaW5pdGlhbFN0YXRlLFxuICBhY3Rpb246IEdsb2JhbE1lc3NhZ2VBY3Rpb25zLkdsb2JhbE1lc3NhZ2VBY3Rpb25cbik6IEdsb2JhbE1lc3NhZ2VTdGF0ZSB7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlIEdsb2JhbE1lc3NhZ2VBY3Rpb25zLkFERF9NRVNTQUdFOiB7XG4gICAgICBjb25zdCBtZXNzYWdlOiBHbG9iYWxNZXNzYWdlID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgICAgIGlmIChzdGF0ZS5lbnRpdGllc1ttZXNzYWdlLnR5cGVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICBlbnRpdGllczoge1xuICAgICAgICAgICAgLi4uc3RhdGUuZW50aXRpZXMsXG4gICAgICAgICAgICBbbWVzc2FnZS50eXBlXTogW21lc3NhZ2UudGV4dF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZXNzYWdlczogVHJhbnNsYXRhYmxlW10gPSBzdGF0ZS5lbnRpdGllc1ttZXNzYWdlLnR5cGVdO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgIGVudGl0aWVzOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5lbnRpdGllcyxcbiAgICAgICAgICAgIFttZXNzYWdlLnR5cGVdOiBbLi4uY3VycmVudE1lc3NhZ2VzLCBtZXNzYWdlLnRleHRdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBHbG9iYWxNZXNzYWdlQWN0aW9ucy5SRU1PVkVfTUVTU0FHRToge1xuICAgICAgY29uc3QgbXNnVHlwZTogR2xvYmFsTWVzc2FnZVR5cGUgPSBhY3Rpb24ucGF5bG9hZC50eXBlO1xuICAgICAgY29uc3QgbXNnSW5kZXg6IG51bWJlciA9IGFjdGlvbi5wYXlsb2FkLmluZGV4O1xuICAgICAgaWYgKFxuICAgICAgICBPYmplY3Qua2V5cyhzdGF0ZS5lbnRpdGllcykubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICFzdGF0ZS5lbnRpdGllc1ttc2dUeXBlXVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVzc2FnZXMgPSBbLi4uc3RhdGUuZW50aXRpZXNbbXNnVHlwZV1dO1xuICAgICAgbWVzc2FnZXMuc3BsaWNlKG1zZ0luZGV4LCAxKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVudGl0aWVzOiB7XG4gICAgICAgICAgLi4uc3RhdGUuZW50aXRpZXMsXG4gICAgICAgICAgW21zZ1R5cGVdOiBtZXNzYWdlcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBHbG9iYWxNZXNzYWdlQWN0aW9ucy5SRU1PVkVfTUVTU0FHRVNfQllfVFlQRToge1xuICAgICAgY29uc3QgZW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmVudGl0aWVzLFxuICAgICAgICBbYWN0aW9uLnBheWxvYWRdOiBbXSxcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZW50aXRpZXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==