90 lines
2.2 KiB
JavaScript
Raw Normal View History

2018-06-26 16:34:52 -04:00
import React, { Fragment } from 'react';
import Card from '@material-ui/core/Card';
import CardActions from '@material-ui/core/CardActions';
import CardContent from '@material-ui/core/CardContent';
import PollManager from 'Embark/contracts/PollManager';
import TextField from '@material-ui/core/TextField';
import Button from '@material-ui/core/Button';
import { withStyles } from '@material-ui/core/styles';
import { withFormik } from 'formik';
2018-06-26 17:05:58 -04:00
const oneDayinBlocks = 5760;
2018-06-26 16:34:52 -04:00
const styles = theme => ({
button: {
margin: theme.spacing.unit,
},
extendedIcon: {
marginRight: theme.spacing.unit,
},
textField: {
marginLeft: theme.spacing.unit,
marginRight: theme.spacing.unit
},
inputLabel: {
fontSize: '16px'
},
form: {
display: 'flex',
flexDirection: 'column'
}
});
const InnerForm = ({
values,
errors,
touched,
handleChange,
handleBlur,
handleSubmit,
isSubmitting,
classes
}) => (
<Card>
<CardContent>
<form onSubmit={handleSubmit} className={classes.form}>
<TextField
id="description"
label="description"
className={classes.textField}
value={values.description}
onChange={handleChange}
margin="normal"
fullWidth
error={errors.description}
/>
<Button type="submit" variant="extendedFab" aria-label="add" className={classes.button}>Submit</Button>
</form>
</CardContent>
</Card>
)
const StyledForm = withStyles(styles)(InnerForm);
const AddPoll = withFormik({
mapPropsToValues: props => ({ description: ''}),
validate(values){
const errors = {};
return errors;
},
2018-06-26 17:05:58 -04:00
async handleSubmit(values, { setSubmitting }) {
const { description } = values;
const { eth: { getBlockNumber }, utils: { asciiToHex } } = window.web3;
2018-06-26 17:05:58 -04:00
const { addPoll } = PollManager.methods;
const currentBlock = await getBlockNumber();
const endTime = currentBlock + (oneDayinBlocks * 90);
2018-06-26 17:05:58 -04:00
addPoll(
endTime,
asciiToHex(description)
2018-06-26 17:05:58 -04:00
)
.send()
.then(res => {
console.log('sucess:', res);
})
.catch(res => {
console.log('fail:', res);
})
2018-06-26 16:34:52 -04:00
}
})(StyledForm)
export default AddPoll;