Advertisement
Guest User

Untitled

a guest
May 4th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. import {Formik} from 'formik'
  2.  
  3. import React from 'react'
  4. import {Router} from '../routes'
  5. import Layout from '../components/MyLayout.js'
  6.  
  7. import TextFormGroup from '../components/TextFormGroup'
  8. import FormGroup from '../components/FormGroup'
  9.  
  10. export default class Register extends React.Component {
  11. state = {
  12. email: '',
  13. username: '',
  14. password: '',
  15. bio: ''
  16. }
  17.  
  18. onSubmit (data, { setSubmitting, setErrors }) {
  19. console.log('Welcome, ' + data.username + ' from ' + data.email + ' with pw ' + data.password)
  20. setTimeout(() => {
  21. setErrors({
  22. username: 'Username already taken'
  23. })
  24. setSubmitting(false)
  25. }, 250)
  26. }
  27.  
  28. renderForm (opts) {
  29. const { name } = opts
  30. return (<form onSubmit={opts.handleSubmit}>
  31. {opts.isSubmitting ? <h1>LOAINDG</h1> : ''}
  32. <TextFormGroup name="email" formik={opts} />
  33. <TextFormGroup name="username" label="Your Username" placeholder="Pick a memorable name" formik={opts} />
  34. <FormGroup name="bio" formik={opts}>
  35. <textarea name="bio"
  36. customprop="This needs custom stuff"
  37. onChange={opts.handleChange}
  38. onBlur={opts.handleBlur}
  39. value={opts.values.bio}>
  40. </textarea>
  41. </FormGroup>
  42. <input
  43. type="password"
  44. name="password"
  45. onChange={opts.handleChange}
  46. onBlur={opts.handleBlur}
  47. value={opts.values.password}
  48. />
  49. {opts.errors.password && opts.touched.password && opts.errors.password}
  50. <button type="submit" disabled={opts.isSubmitting}>
  51. Submit
  52. </button>
  53. </form>)
  54. }
  55.  
  56. render () {
  57. return (
  58. <Layout>
  59. <div>
  60. <Formik
  61. initialValues={this.state}
  62. onSubmit={this.onSubmit}
  63. >
  64. {this.renderForm}
  65. </Formik>
  66. </div>
  67. </Layout>
  68. )
  69. }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement