/** @jsx jsx */ import { jsx, css } from "@emotion/react"; import { Link } from "react-router-dom"; import React, { SyntheticEvent, useEffect, useState } from "react"; import { useParams } from "react-router"; import HeaderBar from "../components/HeaderBar"; import RenderedQuestion from "../components/Question"; import Loading from "../components/Loading"; import ScrollToTop from "../components/ScrollToTop"; import { Form, FormFeatures, getForm } from "../api/forms"; interface PathParams { id: string } function FormPage(): JSX.Element { const { id } = useParams(); const [form, setForm] = useState
(); useEffect(() => { getForm(id).then(form => { setForm(form); }); }, []); if (!form) { return ; } const questions = form.questions.map((question, index) => { return ; }); function handleSubmit(event: SyntheticEvent) { questions.forEach(prop => { const question = prop.props.question; // TODO: Parse input from each question, and submit switch (question.type) { default: console.log(question.id, prop.props.public_state); } }); event.preventDefault(); } const open: boolean = form.features.includes(FormFeatures.Open); let closed_header = null; let submit = null; if (open) { submit = (
); } else { closed_header = (
This form is now closed. You will not be able to submit your response.
); } return (
{ closed_header } {questions}
Return Home

{ submit }
); } export default FormPage;