opds-web-client
Version:
63 lines (62 loc) • 1.9 kB
JavaScript
"use strict";
var initialState = {
url: null,
data: null,
isFetching: false,
error: null
};
var book = function (state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case "FETCH_BOOK_REQUEST":
return Object.assign({}, state, {
isFetching: true,
error: null
});
case "FETCH_BOOK_FAILURE":
return Object.assign({}, state, {
isFetching: false,
error: action.error
});
case "LOAD_BOOK":
return Object.assign({}, state, {
data: action.data,
url: action.url ? action.url : state.url,
isFetching: false
});
case "CLEAR_BOOK":
return Object.assign({}, state, {
data: null,
url: null,
error: null
});
case "CLOSE_ERROR":
return Object.assign({}, state, {
error: null
});
case "FULFILL_BOOK_REQUEST":
case "UPDATE_BOOK_REQUEST":
return Object.assign({}, state, {
isFetching: true
});
case "FULFILL_BOOK_SUCCESS":
case "UPDATE_BOOK_SUCCESS":
return Object.assign({}, state, {
isFetching: false
});
case "FULFILL_BOOK_FAILURE":
case "UPDATE_BOOK_FAILURE":
return Object.assign({}, state, {
isFetching: false,
error: action.error
});
case "LOAD_UPDATE_BOOK_DATA":
return Object.assign({}, state, {
data: Object.assign({}, state.data, action.data)
});
default:
return state;
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = book;