|
@@ -2,6 +2,8 @@ import React, { useState } from 'react';
|
|
|
import './App.css';
|
|
import './App.css';
|
|
|
import 'bootstrap/dist/css/bootstrap.css';
|
|
import 'bootstrap/dist/css/bootstrap.css';
|
|
|
|
|
|
|
|
|
|
+import { Container, Fade, Button, Form, FormGroup, Input, Label } from 'reactstrap';
|
|
|
|
|
+
|
|
|
import PersonalInformation, { FormData } from './PersonalInformation';
|
|
import PersonalInformation, { FormData } from './PersonalInformation';
|
|
|
import DrawCanvas, { CanvasData } from './DrawCanvas';
|
|
import DrawCanvas, { CanvasData } from './DrawCanvas';
|
|
|
import FollowUp from './FollowUp';
|
|
import FollowUp from './FollowUp';
|
|
@@ -10,37 +12,46 @@ type SectionComponentProps = {
|
|
|
changePage: () => void
|
|
changePage: () => void
|
|
|
}
|
|
}
|
|
|
const Introduction: React.FunctionComponent<SectionComponentProps> = ({ changePage }) => (
|
|
const Introduction: React.FunctionComponent<SectionComponentProps> = ({ changePage }) => (
|
|
|
- <section id="introduction">
|
|
|
|
|
- <div className="jumbotron">
|
|
|
|
|
- <h2>Accent and dialect form</h2>
|
|
|
|
|
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit voluptatum corporis minima, eius officiis magnam quae vero praesentium odio facilis minus illo ut atque accusamus esse deserunt. Fuga, autem molestiae!</p>
|
|
|
|
|
- <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quos impedit natus dolorem ipsam rem cum mollitia, cumque sapiente omnis ea sed nobis ullam, asperiores dignissimos. Unde dolore iure quisquam aut.</p>
|
|
|
|
|
- <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat suscipit fugiat, iste, odio tempora dolor, voluptatum assumenda enim aspernatur rem ipsam animi corrupti sapiente labore repellat quam amet. Ipsa, aspernatur!</p>
|
|
|
|
|
- <button type="button" onClick={() => changePage()} className="btn btn-primary">Start</button>
|
|
|
|
|
|
|
+ <Fade tag="section" id="vom-intro">
|
|
|
|
|
+ <h1 className="mb-4">Voices of Merseyside</h1>
|
|
|
|
|
+ <div className="mb-4">
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Suscipit voluptatum corporis minima, eius officiis magnam quae vero praesentium odio facilis minus illo ut atque accusamus esse deserunt. Fuga, autem molestiae!</p>
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quos impedit natus dolorem ipsam rem cum mollitia, cumque sapiente omnis ea sed nobis ullam, asperiores dignissimos. Unde dolore iure quisquam aut.</p>
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat suscipit fugiat, iste, odio tempora dolor, voluptatum assumenda enim aspernatur rem ipsam animi corrupti sapiente labore repellat quam amet. Ipsa, aspernatur!</p>
|
|
|
</div>
|
|
</div>
|
|
|
- </section>
|
|
|
|
|
|
|
+ <Button type="button" outline onClick={() => changePage()} color="success">Let's start!</Button>
|
|
|
|
|
+ </Fade>
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
const TermsAndConditions: React.FunctionComponent<SectionComponentProps> = ({ changePage }) => {
|
|
const TermsAndConditions: React.FunctionComponent<SectionComponentProps> = ({ changePage }) => {
|
|
|
const [ agreement, setAgreement ] = useState(false);
|
|
const [ agreement, setAgreement ] = useState(false);
|
|
|
return (
|
|
return (
|
|
|
- <section id="terms-and-legals">
|
|
|
|
|
- <form id="terms-and-conditions-form" className="needs-validation">
|
|
|
|
|
- <h2>Terms and Conditions</h2>
|
|
|
|
|
- <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Obcaecati dolore magni aspernatur error totam exercitationem sequi illum. Ex voluptas in, eius provident laudantium quidem quod esse corrupti quas vitae aliquam!</p>
|
|
|
|
|
- <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem culpa soluta, voluptatibus quam magni sapiente corporis debitis ad illo voluptas odio! Adipisci facere ad molestiae ullam vero iure minus mollitia.</p>
|
|
|
|
|
- <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum commodi consectetur aperiam. Obcaecati quisquam possimus et facilis quas, doloremque minima rerum reprehenderit fugiat ipsam dolorum placeat velit! Exercitationem, eveniet obcaecati.</p>
|
|
|
|
|
- <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Possimus quidem quisquam suscipit! Excepturi deserunt quaerat, odio recusandae molestiae assumenda voluptatem possimus id alias quas voluptatibus non quis vitae incidunt veritatis!</p>
|
|
|
|
|
- <div className="form-group form-check">
|
|
|
|
|
- <input type="checkbox" className="form-check-input" id="agreement" checked={agreement} onChange={(e) => { setAgreement(e.target.checked)}} required />
|
|
|
|
|
- <label className="form-check-label" htmlFor="agreement">I agree with the termns and conditions</label>
|
|
|
|
|
|
|
+ <Fade tag="section" id="vom-terms">
|
|
|
|
|
+ <Form>
|
|
|
|
|
+ <h2 className="mb-4">Terms and Conditions</h2>
|
|
|
|
|
+ <div className="mb-4">
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Obcaecati dolore magni aspernatur error totam exercitationem sequi illum. Ex voluptas in, eius provident laudantium quidem quod esse corrupti quas vitae aliquam!</p>
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quidem culpa soluta, voluptatibus quam magni sapiente corporis debitis ad illo voluptas odio! Adipisci facere ad molestiae ullam vero iure minus mollitia.</p>
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum commodi consectetur aperiam. Obcaecati quisquam possimus et facilis quas, doloremque minima rerum reprehenderit fugiat ipsam dolorum placeat velit! Exercitationem, eveniet obcaecati.</p>
|
|
|
|
|
+ <p className="lead">Lorem ipsum dolor sit amet consectetur adipisicing elit. Possimus quidem quisquam suscipit! Excepturi deserunt quaerat, odio recusandae molestiae assumenda voluptatem possimus id alias quas voluptatibus non quis vitae incidunt veritatis!</p>
|
|
|
</div>
|
|
</div>
|
|
|
- <button type="button" className="btn btn-primary" onClick={() => changePage()} disabled={!agreement}>next</button>
|
|
|
|
|
- </form>
|
|
|
|
|
- </section>
|
|
|
|
|
|
|
+ <FormGroup className="mb-4" check>
|
|
|
|
|
+ <Input type="checkbox" id="vom-terms-check" checked={agreement} onChange={ e => setAgreement(e.target.checked)}/>
|
|
|
|
|
+ <Label for="vom-terms-check" check>I agree</Label>
|
|
|
|
|
+ </FormGroup>
|
|
|
|
|
+ <Button type="button" disabled={!agreement} color={agreement ? 'primary' : 'secondary'} onClick={ () => changePage() }>Next</Button>
|
|
|
|
|
+ </Form>
|
|
|
|
|
+ </Fade>
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const FinishSection: React.FunctionComponent = () => {
|
|
|
|
|
+ return (
|
|
|
|
|
+ <Fade tag="section" id="vom-finish">
|
|
|
|
|
+ <h2>Thank you!</h2>
|
|
|
|
|
+ </Fade>
|
|
|
|
|
+ )
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
type AnswersData = {
|
|
type AnswersData = {
|
|
|
personalInformation: FormData,
|
|
personalInformation: FormData,
|
|
@@ -49,7 +60,7 @@ type AnswersData = {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const App = () => {
|
|
const App = () => {
|
|
|
- const [ currentPage, setCurrentPage ] = useState(0);
|
|
|
|
|
|
|
+ const [ currentPage, setCurrentPage ] = useState(3);
|
|
|
const [ exit, setExit ] = useState(false);
|
|
const [ exit, setExit ] = useState(false);
|
|
|
const [ answers, saveAnswers ] = useState<AnswersData>({
|
|
const [ answers, saveAnswers ] = useState<AnswersData>({
|
|
|
personalInformation: {
|
|
personalInformation: {
|
|
@@ -98,26 +109,27 @@ const App = () => {
|
|
|
saveAnswers({
|
|
saveAnswers({
|
|
|
...answers,
|
|
...answers,
|
|
|
email,
|
|
email,
|
|
|
- })
|
|
|
|
|
|
|
+ });
|
|
|
|
|
+ setCurrentPage(currentPage + 1)
|
|
|
}
|
|
}
|
|
|
}),
|
|
}),
|
|
|
|
|
+ FinishSection({})
|
|
|
];
|
|
];
|
|
|
return (
|
|
return (
|
|
|
- <div className="App bg-light">
|
|
|
|
|
- <div className="container">
|
|
|
|
|
|
|
+ <div className="App">
|
|
|
|
|
+ <Container>
|
|
|
{
|
|
{
|
|
|
- !exit && sections[currentPage]
|
|
|
|
|
- }
|
|
|
|
|
- {
|
|
|
|
|
- exit && (
|
|
|
|
|
- <section>
|
|
|
|
|
|
|
+ !exit ? (
|
|
|
|
|
+ sections[currentPage]
|
|
|
|
|
+ ) : (
|
|
|
|
|
+ <Fade in={exit} tag="section">
|
|
|
<h4>
|
|
<h4>
|
|
|
Thank you for your interest, but permission from your parent/guardian is required before you are able to participate.
|
|
Thank you for your interest, but permission from your parent/guardian is required before you are able to participate.
|
|
|
</h4>
|
|
</h4>
|
|
|
- </section>
|
|
|
|
|
|
|
+ </Fade>
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
|
- </div>
|
|
|
|
|
|
|
+ </Container>
|
|
|
</div>
|
|
</div>
|
|
|
)
|
|
)
|
|
|
};
|
|
};
|