react-json-schema-form
Version:
Fully customizable Fastest rendering JS/ Json Schema driven React Forms that support validations, POST , Success and Error Alerts , callbacks , React Components (Input, Switch, Checkbox, Radio) renders device o.s theme (iOS,Android and Windows) by default
50 lines (45 loc) • 1.54 kB
JavaScript
import "whatwg-fetch";
var HTTP_CODE_OK = 200;
var HTTP_CODE_MULTIPLE_CHOICES = 300;
export var get = function get(apiUrl, successCallback, errorCallback) {
var putDateStamp = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
var hasError = false;
return fetch(!putDateStamp ? apiUrl : apiUrl + "?" + new Date().getTime(), {
method: "GET",
headers: {
"Content-Type": "application/json",
"Cache-Control": "no-cache"
}
}).then(function (response) {
if (response.status < HTTP_CODE_OK || response.status >= HTTP_CODE_MULTIPLE_CHOICES) {
hasError = true;
}
return response.json();
}).then(function (json) {
return hasError ? errorCallback(json[0]) : successCallback(json);
});
};
export var post = function post(apiUrl, body, successCallback, errorCallback) {
var hasError = false;
return fetch(apiUrl, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(body)
}).then(function (response) {
if (response.status < HTTP_CODE_OK || response.status >= HTTP_CODE_MULTIPLE_CHOICES) {
hasError = true;
}
return response.json();
}).then(function (json) {
return hasError ? errorCallback(json[0]) : successCallback(json);
});
};
export var loadJS = function loadJS(src) {
var ref = window.document.getElementsByTagName("script")[0];
var script = window.document.createElement("script");
script.src = src;
script.async = true;
ref.parentNode.insertBefore(script, ref);
};