react-giphy-searchbox-stickers
Version:
React Giphy Searchbox
57 lines (45 loc) • 1.38 kB
JavaScript
;
exports.__esModule = true;
var _react = require('react');
var _axios = require('axios');
var _axios2 = _interopRequireDefault(_axios);
var _dataFetchReducer = require('../reducers/dataFetchReducer');
var _dataFetchReducer2 = _interopRequireDefault(_dataFetchReducer);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var useApi = function useApi() {
var _useReducer = (0, _react.useReducer)(_dataFetchReducer2.default, {
loading: false,
error: false,
data: [],
lastPage: false
}),
state = _useReducer[0],
dispatch = _useReducer[1];
var fetch = function fetch(url, isMore) {
if (isMore) {
dispatch({ type: 'FETCH_MORE_INIT' });
} else {
dispatch({ type: 'FETCH_INIT' });
}
_axios2.default.get(url).then(function (response) {
if (isMore) {
dispatch({
type: 'FETCH_MORE_SUCCESS',
payload: response.data.data,
pagination: response.data.pagination
});
} else {
dispatch({
type: 'FETCH_SUCCESS',
payload: response.data.data,
pagination: response.data.pagination
});
}
}).catch(function () {
dispatch({ type: 'FETCH_FAILURE' });
});
};
return [state, fetch];
};
exports.default = useApi;
module.exports = exports['default'];