/*! * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an 'AS IS' BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing * permissions and limitations under the License. */ import {actionTypes} from './MergeEditorConstants.js'; export default (state = [], action) => { switch (action.type) { case actionTypes.LOAD_CONFLICT: { let cdata = {...action.data}; // let data = state.conflicts ? {...state.conflicts.data} : {} ; // data[cdata.id] = cdata; let conflicts = state.conflicts ? {...state.conflicts} : {}; conflicts[cdata.id] = cdata; return { ...state, conflicts }; } case actionTypes.DATA_PROCESSED: { let conflicts = {...state.conflicts}; let {data} = action; if (data && data.cid) { let yours = {...conflicts[data.cid].yours}; let theirs = {...conflicts[data.cid].theirs}; let {yoursField, theirsField} = data; if (yoursField) { yours[yoursField.name] = yoursField.value; conflicts[data.cid].yours = yours; } if (theirsField) { theirs[theirsField.name] = theirsField.value; conflicts[data.cid].theirs = theirs; } } return { ...state, conflicts: { ...conflicts } }; } case actionTypes.LOAD_CONFLICTS: let conflictFiles = []; if (action.data) { conflictFiles = [...action.data.conflictInfoList]; } return { inMerge: conflictFiles.length > 0, conflictFiles }; default: return state; } };