react-giphy-searchbox2
Version:
React Giphy Searchbox
52 lines (46 loc) • 1.51 kB
JavaScript
'use strict';
exports.__esModule = true;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var dataFetchReducer = function dataFetchReducer(state, action) {
var payload = action.payload,
pagination = action.pagination;
switch (action.type) {
case 'FETCH_INIT':
return _extends({}, state, {
loading: true,
error: false,
lastPage: false,
data: []
});
case 'FETCH_MORE_INIT':
return _extends({}, state, {
loading: true,
error: false,
lastPage: false
});
case 'FETCH_SUCCESS':
return _extends({}, state, {
loading: false,
error: false,
data: payload,
lastPage: pagination.total_count - pagination.offset <= pagination.count
});
case 'FETCH_MORE_SUCCESS':
return _extends({}, state, {
loading: false,
error: false,
data: [].concat(state.data, payload),
lastPage: pagination.total_count - pagination.offset <= pagination.count
});
case 'FETCH_FAILURE':
return _extends({}, state, {
loading: false,
error: true,
lastPage: false
});
default:
throw new Error('Unknown action type');
}
};
exports.default = dataFetchReducer;
module.exports = exports['default'];