blob: 1630849b64383f3c673073147dbf80b07c741303 [file] [log] [blame]
/*!
* 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;
}
};