UNPKG

opds-web-client

Version:
74 lines (73 loc) 2.39 kB
"use strict"; var history_1 = require("./history"); var initialState = { url: null, data: null, isFetching: false, isFetchingPage: false, error: null, history: [] }; var collection = function (state, action) { if (state === void 0) { state = initialState; } switch (action.type) { case "FETCH_COLLECTION_REQUEST": return Object.assign({}, state, { isFetching: true, error: null }); case "FETCH_COLLECTION_FAILURE": return Object.assign({}, state, { isFetching: false, error: action.error }); case "LOAD_COLLECTION": return Object.assign({}, state, { data: action.data, url: action.url ? action.url : state.url, isFetching: false, error: null, history: history_1.default(state, action) }); case "CLEAR_COLLECTION": return Object.assign({}, state, { data: null, url: null, error: null, history: state.history.slice(0, -1) }); case "FETCH_PAGE_REQUEST": return Object.assign({}, state, { pageUrl: action.url, isFetchingPage: true, error: null }); case "FETCH_PAGE_FAILURE": return Object.assign({}, state, { isFetchingPage: false, error: action.error }); case "LOAD_PAGE": return Object.assign({}, state, { data: Object.assign({}, state.data, { books: Object.assign([], state.data.books).concat(action.data.books), nextPageUrl: action.data.nextPageUrl }), isFetchingPage: false }); case "LOAD_SEARCH_DESCRIPTION": return Object.assign({}, state, { data: Object.assign({}, state.data, { search: action.data }) }); case "CLOSE_ERROR": return Object.assign({}, state, { error: null }); default: return state; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = collection;