UNPKG

react-simpler-forms

Version:

React Higher Order component that manages all of your forms state along with other components that make it easy to create, validate, perform search queries, and submit single or multi-step forms.

64 lines (40 loc) 1.11 kB
// xhr request let currentxhr = null; export default function FormAPI(updateForm, payload) { if (currentxhr && payload.cancelable) { currentxhr.abort(); } updateForm('toggleLoading') var xhr = new XMLHttpRequest(); currentxhr = xhr; xhr.open("POST", payload.url, true); xhr.setRequestHeader("Accept", "application/json"); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function() { updateForm('toggleLoading') let response if (payload.property) { response = { property: payload.property, data: xhr.response } } else { response = xhr.response } if (this.readyState === XMLHttpRequest.DONE) { if (this.status === 200) { if (typeof payload.success === 'function') { payload.success(response) } else { updateForm(payload.success, response) } } else { updateForm(payload.error, response) } } }; xhr.onabort = function () { currentxhr = null; }; xhr.send(JSON.stringify(payload.data)); }