Files
Readarr/frontend/src/Store/Actions/Creators/createRemoveItemHandler.js
T
Qstick 0a6f552d5b New: Cleanup UI tooling, Update to Webpack 4, Gulp 4 (#655)
* New: Webpack 4

* New: Gulp 4

* New: Transpile UI for old browsers

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
2019-03-08 21:10:23 -05:00

47 lines
999 B
JavaScript

import $ from 'jquery';
import { batchActions } from 'redux-batched-actions';
import createAjaxRequest from 'Utilities/createAjaxRequest';
import { set, removeItem } from '../baseActions';
function createRemoveItemHandler(section, url) {
return function(getState, payload, dispatch) {
const {
id,
...queryParams
} = payload;
dispatch(set({ section, isDeleting: true }));
const ajaxOptions = {
url: `${url}/${id}?${$.param(queryParams, true)}`,
method: 'DELETE'
};
const promise = createAjaxRequest(ajaxOptions).request;
promise.done((data) => {
dispatch(batchActions([
set({
section,
isDeleting: false,
deleteError: null
}),
removeItem({ section, id })
]));
});
promise.fail((xhr) => {
dispatch(set({
section,
isDeleting: false,
deleteError: xhr
}));
});
return promise;
};
}
export default createRemoveItemHandler;