app/addons/documents/rev-browser/reducers.js (70 lines of code) (raw):

// 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;