diff options
Diffstat (limited to 'openecomp-ui/src/sdc-app/common/merge/MergeEditorReducer.js')
-rw-r--r-- | openecomp-ui/src/sdc-app/common/merge/MergeEditorReducer.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/openecomp-ui/src/sdc-app/common/merge/MergeEditorReducer.js b/openecomp-ui/src/sdc-app/common/merge/MergeEditorReducer.js new file mode 100644 index 0000000000..6985fcfaca --- /dev/null +++ b/openecomp-ui/src/sdc-app/common/merge/MergeEditorReducer.js @@ -0,0 +1,66 @@ +/*! + * 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; + } +}; |