function App()

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}