Guest User

Untitled

a guest
Jan 14th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. import * as React from 'react';
  2. import * as reduxForm from 'redux-form';
  3.  
  4. export interface Props extends reduxForm.InjectedFormProps {}
  5.  
  6. let passedUsername = false;
  7. let passedPassword = false;
  8.  
  9. const required = (value: string, callback: (passed: boolean) => void) => {
  10. console.info(`PERFORM REQUIRED FIELD CHECK FOR ${value}`);
  11. if (value && value.trim().length > 0) {
  12. callback(true);
  13. } else {
  14. callback(false);
  15. }
  16. };
  17.  
  18. const usernameRequired = (value: string) => {
  19. required(value, passed => { passedUsername = passed; });
  20. };
  21. const passwordRequired = (value: string) => {
  22. required(value, passed => { passedPassword = passed; });
  23. };
  24.  
  25. const isPassed = () => {
  26. console.info(`USER PASSED: ${passedUsername}`);
  27. console.info(`PASSWORD PASSED: ${passedPassword}`);
  28. const result = passedUsername && passedPassword;
  29. console.info(`PASSED: ${result}`);
  30. return result;
  31. };
  32.  
  33. const LoginForm = ({handleSubmit, pristine, submitting}: Props) => (
  34. <form onSubmit={handleSubmit}>
  35. <div>
  36. <label>Username </label>
  37. <reduxForm.Field
  38. name="username"
  39. component="input"
  40. type="text"
  41. validate={[usernameRequired]}
  42. placeholder="Username"
  43. />
  44. <br/>
  45. <label>Password </label>
  46. <reduxForm.Field
  47. name="password"
  48. component="input"
  49. type="password"
  50. validate={[passwordRequired]}
  51. placeholder="Password"
  52. />
  53. </div>
  54. <br/>
  55. <div>
  56. <button type="submit" disabled={!isPassed()}>
  57. <i className="fa fa-spinner fa-spin" style={{visibility: (submitting) ? 'visible' : 'hidden'}}/>
  58. &nbsp;
  59. <strong>Login</strong>
  60. </button>
  61. </div>
  62. </form>
  63. );
  64.  
  65. export default reduxForm.reduxForm({
  66. form: 'login'
  67. })(LoginForm);
Add Comment
Please, Sign In to add comment