UNPKG

@chalkbooks/react-doc-viewer

Version:
77 lines (76 loc) 3.38 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mainStateReducer = exports.initialState = void 0; var actions_1 = require("./actions"); var i18n_1 = require("../i18n"); exports.initialState = { currentFileNo: 0, documents: [], documentLoading: true, currentDocument: undefined, rendererRect: undefined, config: {}, pluginRenderers: [], language: i18n_1.defaultLanguage, }; var mainStateReducer = function (state, action) { if (state === void 0) { state = exports.initialState; } switch (action.type) { case actions_1.SET_ALL_DOCUMENTS: { var _a = action, documents = _a.documents, initialActiveDocument = _a.initialActiveDocument; return __assign(__assign({}, state), { documents: documents, currentDocument: initialActiveDocument ? initialActiveDocument : documents[0] || null, currentFileNo: initialActiveDocument && documents.includes(initialActiveDocument) ? documents.indexOf(initialActiveDocument) : exports.initialState.currentFileNo }); } case actions_1.SET_DOCUMENT_LOADING: { var value = action.value; return __assign(__assign({}, state), { documentLoading: value }); } case actions_1.NEXT_DOCUMENT: { if (state.currentFileNo >= state.documents.length - 1) return state; var nextDocumentNo = state.currentFileNo + 1; if (state.onDocumentChange) { state.onDocumentChange(state.documents[nextDocumentNo]); } return __assign(__assign({}, state), { currentFileNo: nextDocumentNo, currentDocument: state.documents[nextDocumentNo], documentLoading: true }); } case actions_1.PREVIOUS_DOCUMENT: { if (state.currentFileNo <= 0) return state; var prevDocumentNo = state.currentFileNo - 1; if (state.onDocumentChange) { state.onDocumentChange(state.documents[prevDocumentNo]); } return __assign(__assign({}, state), { currentFileNo: state.currentFileNo - 1, currentDocument: state.documents[prevDocumentNo], documentLoading: true }); } case actions_1.UPDATE_CURRENT_DOCUMENT: { var document_1 = action.document; return __assign(__assign({}, state), { currentDocument: document_1, currentFileNo: state.documents.findIndex(function (doc) { return doc.uri === document_1.uri; }) }); } case actions_1.SET_RENDERER_RECT: { var rect = action.rect; return __assign(__assign({}, state), { rendererRect: rect }); } case actions_1.SET_MAIN_CONFIG: { var config = action.config; return __assign(__assign({}, state), { config: config }); } default: return state; } }; exports.mainStateReducer = mainStateReducer;