Advertisement
Guest User

Untitled

a guest
Aug 29th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. import React from 'react';
  2. import { Field, reduxForm } from 'redux-form';
  3. import { renderField } from '../../utils/helpers';
  4.  
  5. function renderConditionsCheckbox({
  6. input,
  7. label,
  8. type,
  9. meta: { touched, error },
  10. id,
  11. disabled,
  12. requiredSign,
  13. }) {
  14. const isError = touched && error;
  15. return (
  16. <div className={`form-row ${isError ? 'form-row--error' : ''}`}>
  17. <div className="input__wrapper">
  18. <input {...input} type={type} id={id} disabled={disabled} />
  19. <label htmlFor={id} className="form-row__label form-row__label--minor">
  20. Akceptuję <a href="#" className="link link--underlined link--natural">Regulamin Serwisu Donald.pl</a> i&nbsp;zobowiązuję się do jego przestrzegania
  21. </label>
  22. {requiredSign && <span className="input__required-sign">*</span> }
  23. </div>
  24. { isError &&
  25. <span className="error">
  26. {error}
  27. </span>
  28. }
  29. </div>
  30. );
  31. }
  32.  
  33. const validate = (values) => {
  34. const errors = {};
  35. if (!values.email) {
  36. errors.email = 'Pole jest wymagane';
  37. } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.email)) {
  38. errors.email = 'Invalid email address';
  39. }
  40. if (!values.password) {
  41. errors.password = 'Pole jest wymagane';
  42. }
  43. if (!values['password-retype']) {
  44. errors['password-retype'] = 'Pole jest wymagane';
  45. }
  46. if (values['password-retype'] !== values.password && values.password && values['password-retype']) {
  47. errors['password-retype'] = 'Pola nie są takie same';
  48. errors.password = 'Pola nie są takie same';
  49. }
  50. if (!values.username) {
  51. errors.username = 'Pole jest wymagane';
  52. }
  53. if (!values.conditions) {
  54. errors.conditions = 'Pole jest wymagane';
  55. }
  56. return errors;
  57. };
  58.  
  59. const RegisterForm = (props) => {
  60. const { handleSubmit, submitting, error } = props;
  61. return (
  62. <div>
  63. <form onSubmit={handleSubmit}>
  64. <Field name="username" component={renderField} type="text" label="Imię i nazwisko / pseudonim:" id="username" requiredSign />
  65. <Field name="email" component={renderField} type="text" label="E-mail" id="email" requiredSign />
  66. <Field name="password" component={renderField} type="password" label="Hasło" id="password" requiredSign />
  67. <Field name="password-retype" component={renderField} type="password" label="Powtórz hasło" id="password-retype" requiredSign />
  68. <Field name="conditions" component={renderConditionsCheckbox} type="checkbox" id="conditions" requiredSign />
  69. {error &&
  70. <div className="form-row">
  71. <strong className="form-row__error">{error}</strong>
  72. </div>
  73. }
  74. <div className="form-row">
  75. <button type="submit" disabled={submitting} className="button button--primary">Załóż konto</button>
  76. </div>
  77. </form>
  78. </div>
  79. );
  80. };
  81.  
  82. export default reduxForm({
  83. validate,
  84. form: 'register',
  85. })(RegisterForm);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement