@@ -8,10 +8,7 @@ import CardLabel from "../input/CardLabel"
8
8
9
9
import type { User } from "../../flow/authTypes"
10
10
11
- import {
12
- changeEmailFormValidation ,
13
- changeEmailValidationRegex
14
- } from "../../lib/validation"
11
+ import { changeEmailFormValidation } from "../../lib/validation"
15
12
import FormError from "./elements/FormError"
16
13
import { ConnectedFocusError } from "focus-formik-error"
17
14
@@ -22,88 +19,88 @@ type Props = {
22
19
23
20
export type ChangeEmailFormValues = {
24
21
email : string ,
25
- confirmPassword : string
22
+ confirmPasswordEmailChange : string
26
23
}
27
24
28
- const ChangeEmailForm = ( { onSubmit, user } : Props ) => {
29
- return (
30
- < Formik
31
- onSubmit = { onSubmit }
32
- validationSchema = { changeEmailFormValidation }
33
- initialValues = { {
34
- email : user . email ,
35
- confirmPassword : ""
36
- } }
37
- >
38
- { ( { isSubmitting, errors } ) => {
39
- return (
40
- < Form >
41
- < ConnectedFocusError />
42
- < section className = "email-section" >
43
- < h2 aria-label = "Change Email Form" > Change Email</ h2 >
44
- < div className = "form-group" >
45
- < CardLabel htmlFor = "email" isRequired = { true } label = "Email" />
46
- < Field
47
- name = "email"
48
- id = "email"
49
- className = "form-control"
50
- component = { EmailInput }
51
- autoComplete = "email"
52
- pattern = { changeEmailValidationRegex ( user . email ) }
53
- title = "Email must be different than your current one."
54
- aria-invalid = { errors . email ? "true" : null }
55
- aria-describedby = { errors . email ? "emailError" : null }
56
- />
57
- < ErrorMessage
58
- name = "email"
59
- id = "emailError"
60
- component = { FormError }
61
- />
62
- </ div >
63
- < div className = "form-group" >
64
- < CardLabel
65
- htmlFor = "confirmPassword"
66
- isRequired = { true }
67
- label = "Confirm Password"
68
- subLabel = "Password required to change email address"
69
- />
70
- < Field
71
- id = "confirmPassword"
72
- name = "confirmPassword"
73
- className = "form-control"
74
- component = { PasswordInput }
75
- autoComplete = "current-password"
76
- aria-invalid = { errors . confirmPassword ? "true" : null }
77
- aria-describedby = {
78
- errors . confirmPassword ? "confirmPasswordError" : null
79
- }
80
- aria-label = "Confirm Password"
81
- />
82
- < ErrorMessage
83
- name = "confirmPassword"
84
- id = "confirmPasswordError"
85
- component = { FormError }
86
- />
87
- </ div >
88
- </ section >
25
+ const ChangeEmailForm = ( { onSubmit, user } : Props ) => (
26
+ < Formik
27
+ onSubmit = { onSubmit }
28
+ validationSchema = { changeEmailFormValidation ( user . email ) }
29
+ initialValues = { {
30
+ email : user . email ,
31
+ confirmPasswordEmailChange : ""
32
+ } }
33
+ validateOnChange = { false }
34
+ validateOnBlur = { false }
35
+ >
36
+ { ( { isSubmitting, errors } ) => {
37
+ return (
38
+ < Form noValidate >
39
+ < ConnectedFocusError />
40
+ < section className = "email-section" >
41
+ < h2 aria-label = "Change Email Form" > Change Email</ h2 >
42
+ < div className = "form-group" >
43
+ < CardLabel htmlFor = "email" isRequired = { true } label = "Email" />
44
+ < Field
45
+ name = "email"
46
+ id = "email"
47
+ className = "form-control"
48
+ component = { EmailInput }
49
+ aria-invalid = { errors . email ? "true" : null }
50
+ aria-describedby = { errors . email ? "emailError" : null }
51
+ required
52
+ />
53
+ < ErrorMessage
54
+ name = "email"
55
+ id = "emailError"
56
+ component = { FormError }
57
+ />
58
+ </ div >
59
+ < div className = "form-group" >
60
+ < CardLabel
61
+ htmlFor = "confirmPasswordEmailChange"
62
+ isRequired = { true }
63
+ label = "Current Password"
64
+ subLabel = "Current password required to change email address"
65
+ />
66
+ < Field
67
+ id = "confirmPasswordEmailChange"
68
+ name = "confirmPasswordEmailChange"
69
+ className = "form-control"
70
+ component = { PasswordInput }
71
+ autoComplete = "current-password"
72
+ aria-invalid = { errors . confirmPasswordEmailChange ? "true" : null }
73
+ aria-describedby = {
74
+ errors . confirmPasswordEmailChange
75
+ ? "confirmPasswordEmailChangeError"
76
+ : null
77
+ }
78
+ required
79
+ />
80
+ < ErrorMessage
81
+ name = "confirmPasswordEmailChange"
82
+ id = "confirmPasswordEmailChangeError"
83
+ component = { FormError }
84
+ />
85
+ </ div >
86
+ </ section >
89
87
90
- < div className = "row submit-row no-gutters" >
91
- < div className = "col d-flex justify-content-end" >
92
- < button
93
- type = "submit"
94
- aria-label = "sumbit form change email"
95
- className = "btn btn-primary btn-gradient-red-to-blue"
96
- disabled = { isSubmitting }
97
- >
98
- Submit
99
- </ button >
100
- </ div >
88
+ < div className = "row submit-row no-gutters" >
89
+ < div className = "col d-flex justify-content-end" >
90
+ < button
91
+ type = "submit"
92
+ aria-label = "sumbit form change email"
93
+ className = "btn btn-primary btn-gradient-red-to-blue"
94
+ disabled = { isSubmitting }
95
+ >
96
+ Submit
97
+ </ button >
101
98
</ div >
102
- </ Form >
103
- )
104
- } }
105
- </ Formik >
106
- )
107
- }
99
+ </ div >
100
+ </ Form >
101
+ )
102
+ } }
103
+ </ Formik >
104
+ )
108
105
109
106
export default ChangeEmailForm
0 commit comments