successfully added a http request

This commit is contained in:
Andreas Schaafsma 2022-05-27 21:40:48 +01:00
parent d41142e99d
commit a5e9cf334e

View File

@ -1,4 +1,5 @@
package components;
import js.html.XMLHttpRequest;
import react.ReactMacro.jsx;
import react.ReactComponent;
import js.Browser;
@ -7,16 +8,70 @@ import react.router.ReactRouter;
import react.router.Route.RouteRenderProps;
import react.router.Route;
import components.blog.Overview;
import js.lib.Promise;
class HomeContent extends ReactComponent {
public function new(){
super();
state = { response: ["LOADING"], loaded: false }
}
static var STYLES = require('./HomeContent.css');
public function yeet(){
trace(state);
}
//function sendRequest( image : Dynamic ) {
function sendRequest() {
return new js.lib.Promise(
function( resolve : Dynamic -> Void, reject )
{
var request = new XMLHttpRequest();
request.responseType = js.html.XMLHttpRequestResponseType.JSON;
request.onreadystatechange = function () {
if (request.readyState == 4) {
switch (request.status) {
case 200:
setState( { response: request.response } );
trace(request.response);
case 204:
resolve(true);
default:
trace( "Wrong response status" );
reject( request.response);
}
}
}
// var data = new js.html.FormData();
// // If we had a real file, we could use `file.name` as third argument
// data.append(props.formFieldName != null ? props.formFieldName : "file", image);
request.open("GET", "https://baconipsum.com/api/?type=meat-and-filler");
// request.send(data);
request.send();
});
}
override public function render() {
//var _yeet = yayeet();
var lorem = ["LOADING"];
if(state.loaded){
if(state.response != null)
lorem = state.response;
}
else{
setState({
loaded: "false"
});
sendRequest();
}
return jsx('
<div>
<$Route exact="true" path={["/home","/home/about"]}>
@ -29,7 +84,7 @@ class HomeContent extends ReactComponent {
- Music<br/>
- Art<br/>
DRIVEBY! is run and operated by Hion-V. I am comitted to bringing you best-in-class entertainment and software.<br/>
${lorem[0]}<br/>
</p>
</div>
</$Route>