Skip to content

Instantly share code, notes, and snippets.

@jmas
Last active July 11, 2019 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmas/24e0c36fbf907a8c1de66f3651c0ea31 to your computer and use it in GitHub Desktop.
Save jmas/24e0c36fbf907a8c1de66f3651c0ea31 to your computer and use it in GitHub Desktop.
react-application.js
import React, { useState } from 'react';
export default function App({ data }) {
const [ text, setText ] = useState(data.isChecked);
const [ error, setError ] = useState(null);
const [ isSuccess, setIsSuccess ] = useState(false);
const [ inProgress, setInProgress ] = useState(false);
function submitForm() {
setIsSuccess(false);
setInProgress(true);
window.fetch('/send', {
body: { text }
}).then(response => {
if (response.status !== 200) {
throw new Error(`Failed!`);
}
return response.json();
}).then(
data => {
setInProgress(false);
setIsSuccess(true);
},
error => {
setInProgress(false);
setError(error);
}
);
}
return (
<form onSubmit={event => {
event.preventDefault();
submitForm();
}}>
<input type={'text'} onChange={event => setText(event.target.value)} />
<button>Send</button>
</form>
);
}
import React from 'react';
import ReactDOM from 'react-dom';
import App from '/app''
ReactDOM.render(
document.getElementById('container'),
<App isChecked={document.getElementById('container').dataset} />
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment