UNPKG

@chalkbooks/react-doc-viewer

Version:
73 lines (72 loc) 3.25 kB
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); }; import { NEXT_DOCUMENT, PREVIOUS_DOCUMENT, SET_ALL_DOCUMENTS, SET_DOCUMENT_LOADING, SET_MAIN_CONFIG, SET_RENDERER_RECT, UPDATE_CURRENT_DOCUMENT, } from "./actions"; import { defaultLanguage } from "../i18n"; export var initialState = { currentFileNo: 0, documents: [], documentLoading: true, currentDocument: undefined, rendererRect: undefined, config: {}, pluginRenderers: [], language: defaultLanguage, }; export var mainStateReducer = function (state, action) { if (state === void 0) { state = initialState; } switch (action.type) { case 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) : initialState.currentFileNo }); } case SET_DOCUMENT_LOADING: { var value = action.value; return __assign(__assign({}, state), { documentLoading: value }); } case 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 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 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 SET_RENDERER_RECT: { var rect = action.rect; return __assign(__assign({}, state), { rendererRect: rect }); } case SET_MAIN_CONFIG: { var config = action.config; return __assign(__assign({}, state), { config: config }); } default: return state; } };