UNPKG

symphony-integration-commons

Version:

Common components for 3rd party developers build the user facing application for Symphony Integrations.

119 lines (116 loc) 3.47 kB
import { FAILED_OPERATION, FAILED_OPERATION_MESSAGE, GET_APP_PARAMS, HIDE_REQUIRE_NAME, HIDE_REQUIRE_ROOMS, NAME_IS_REQUIRED, NO_INSTANCES_FOUND, NO_INSTANCES_FOUND_MESSAGE, RESET_MESSAGE, REQUIRED_NAME, REQUIRED_ROOMS, ROOMS_IS_REQUIRED, SUCCESSFULLY_CREATED, SUCCESSFULLY_CREATED_MESSAGE, SUCCESSFULLY_REMOVED, SUCCESSFULLY_REMOVED_MESSAGE, SUCCESSFULLY_UPDATED, SUCCESSFULLY_UPDATED_MESSAGE, } from '../actions'; const messages = (state = { appName: '', type: '', text: [] }, action) => { switch (action.type) { case GET_APP_PARAMS: return Object.assign({}, state, { ...state, appName: action.params.appName, }); case SUCCESSFULLY_CREATED: return Object.assign({}, state, { type: 'success', text: [SUCCESSFULLY_CREATED_MESSAGE.replace(/#INTEGRATION_NAME/g, state.appName)], }); case SUCCESSFULLY_UPDATED: return Object.assign({}, state, { type: 'success', text: [SUCCESSFULLY_UPDATED_MESSAGE.replace(/#INTEGRATION_NAME/g, state.appName)], }); case SUCCESSFULLY_REMOVED: return Object.assign({}, state, { type: 'success', text: [SUCCESSFULLY_REMOVED_MESSAGE.replace(/#INTEGRATION_NAME/g, state.appName)], }); case REQUIRED_ROOMS: return Object.assign({}, state, { type: 'warning', text: (() => { if (state.text.filter(msg => msg === ROOMS_IS_REQUIRED).length > 0) { return state.text.slice(); } return state.text.concat([ROOMS_IS_REQUIRED]); })(), }); case REQUIRED_NAME: return Object.assign({}, state, { type: 'warning', text: (() => { if (state.text.filter(msg => msg === NAME_IS_REQUIRED).length > 0) { return state.text.slice(); } return state.text.concat([NAME_IS_REQUIRED]); })(), }); case HIDE_REQUIRE_NAME: return Object.assign({}, state, { type: (() => { let _type = ''; if (state.text.filter(msg => msg !== NAME_IS_REQUIRED).length > 0) { _type = 'warning'; } return _type; })(), text: (() => { let _text = []; if (state.text.filter(msg => msg !== NAME_IS_REQUIRED).length > 0) { _text = state.text.filter(msg => msg !== NAME_IS_REQUIRED); } return _text; })(), }); case HIDE_REQUIRE_ROOMS: return Object.assign({}, state, { type: (() => { let _type = ''; if (state.text.filter(msg => msg !== ROOMS_IS_REQUIRED).length > 0) { _type = 'warning'; } return _type; })(), text: (() => { let _text = []; if (state.text.filter(msg => msg !== ROOMS_IS_REQUIRED).length > 0) { _text = state.text.filter(msg => msg !== ROOMS_IS_REQUIRED); } return _text; })(), }); case RESET_MESSAGE: return Object.assign({}, state, { type: '', text: [], }); case NO_INSTANCES_FOUND: return Object.assign({}, state, { type: 'warning', text: [NO_INSTANCES_FOUND_MESSAGE], }); case FAILED_OPERATION: return Object.assign({}, state, { type: 'error', text: [FAILED_OPERATION_MESSAGE], }); default: return state; } }; export default messages;