You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mvfront-react/src/components/views/Home.jsx

60 lines
2.3 KiB

import React, {Component} from "react";
import { Container, Row, Col,Button, Input } from 'reactstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faRocket } from '@fortawesome/free-solid-svg-icons';
import { Redirect } from 'react-router-dom';
import logoLine from "../../logos/logo-line-white.svg";
class Home extends Component {
constructor(props) {
super(props);
this.state = {
title:null,
redirect:false,
};
this.focusInput= React.createRef();
}
handleSubmit = (event) => {
event.preventDefault();
this.setState({redirect: true});
};
handleChangeTitle= (event) => {
this.setState({title: event.target.value});
};
render(){
const redirect = this.state.redirect;
if (redirect) {
return <Redirect to={ '/create-election/?title='+encodeURIComponent(this.state.title)} />;
}
return(
<Container>
<form onSubmit={this.handleSubmit} autoComplete="off">
<Row>
<img src={logoLine} alt="logo" height="128" className="d-block ml-auto mr-auto mb-4"/>
</Row>
<Row>
<Col className="text-center"><h3>Simple et gratuit : organisez un vote à l'aide du Jugement Majoritaire.</h3></Col>
</Row>
<Row className="mt-2">
<Col xs="12" md="9" xl="6" className="offset-xl-2">
<Input placeholder="Saisissez ici la question de votre vote" innerRef={this.focusInput} autoFocus required className="mt-2" name="title" value={this.state.title?this.state.title:""} onChange={this.handleChangeTitle} maxLength="250" />
</Col>
<Col xs="12" md="3" xl="2">
<Button type="submit" className="btn btn-block btn-secondary mt-2" ><FontAwesomeIcon icon={faRocket} className="mr-2"/>Lancer</Button>
</Col>
</Row>
<Row className="mt-4">
<Col className="text-center"><p>Pas de publicité et pas de cookie publicitaire.</p></Col>
</Row>
</form>
</Container>
)
};
}
export default Home;