blob: 4ce2ed96786cd7b88b24cd85d18e4db0bbb4e853 [file] [log] [blame]
// 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 {
REV_BROWSER_REV_TREE_LOADED,
REV_BROWSER_DIFF_DOCS_READY,
REV_BROWSER_DIFF_ENABLE_DIFF_VIEW,
REV_BROWSER_SHOW_CONFIRM_MODAL
} from './actiontypes';
const initialState = {
tree: [],
doc: {},
conflictDoc: false,
conflictingRevs: [],
databaseName: '',
ours: null,
theirs: null,
isDiffViewEnabled: true,
showConfirmModal: false,
docToWin: null
};
const revisionConflicts = (state = initialState, {type, options}) => {
switch (type) {
case REV_BROWSER_REV_TREE_LOADED:
const {
tree,
doc,
conflictDoc,
conflictingRevs,
databaseName,
} = options;
return {
...state,
tree,
doc,
conflictDoc,
conflictingRevs,
databaseName,
theirs: conflictDoc,
ours: doc
};
case REV_BROWSER_DIFF_DOCS_READY:
return {
...state,
theirs: options.theirs
};
case REV_BROWSER_DIFF_ENABLE_DIFF_VIEW:
return {
...state,
isDiffViewEnabled: options.enableDiff
};
case REV_BROWSER_SHOW_CONFIRM_MODAL:
return {
...state,
showConfirmModal: options.show,
docToWin: options.docToWin
};
default:
return state;
}
};
export default revisionConflicts;
export const getTree = state => state.tree;
export const getDoc = state => state.doc;
export const getConflictDoc = state => state.conflictDoc;
export const getConflictingRev = state => state.conflictingRevs;
export const getDatabaseName = state => state.databaseName;
export const getOurs = state => state.ours;
export const getTheirs = state => state.theirs;
export const getShowConfirmModal = state => state.showConfirmModal;
export const getDropdownData = state => state.conflictingRevs.map(rev => { return {value: rev, label: rev}; });
export const getIsDiffViewEnabled = state => state.isDiffViewEnabled;
export const getDocToWin = state => state.docToWin;