in source/4-landing-page-with-feedback-api/ui/src/Components/App.tsx [24:58]
function App() {
const [name, setName] = useState("");
const [email, setEmail] = useState("");
const [subject, setSubject] = useState("");
const [details, setDetails] = useState("");
const [loading, setLoading] = useState(false);
const [submitted, setSubmitted] = useState(false);
const [failed, setFailed] = useState(false);
const classes = useStyles();
function onFail() {
setLoading(false);
setFailed(true);
}
function onClickButton() {
setLoading(true);
submitForm({ name, email, subject, details })
.then(response => {
if (response.status !== 200) {
onFail()
return;
}
setLoading(false);
setSubmitted(true);
})
.catch(err => {
onFail();
});
}
return (
<div>
<Header />
{failed ? <SubmissionResult variant="error" open={failed} onClose={()=>setFailed(false)} /> : null}