@@ -9,6 +9,9 @@ class ContactPage extends React.Component {
99 lname : null ,
1010 message : null ,
1111 email : null ,
12+ submitted : false ,
13+ errored : false ,
14+ response : null ,
1215 } ;
1316
1417 _handleChange = e => {
@@ -20,24 +23,31 @@ class ContactPage extends React.Component {
2023 _handleSubmit = e => {
2124 e . preventDefault ( ) ;
2225
23- console . log ( 'submit' , this . state ) ;
2426 const { email, fname, lname, message } = this . state ;
2527
28+ this . setState ( {
29+ errored : false ,
30+ submitted : false ,
31+ response : null ,
32+ } ) ;
33+
2634 addToMailchimp ( email , {
27- name : `${ fname } ${ lname } ` ,
28- message : message ,
35+ FNAME : fname ,
36+ LNAME : lname ,
37+ MESSAGE : message ,
2938 } )
3039 . then ( ( { msg, result } ) => {
31- console . log ( 'msg' , `${ result } : ${ msg } ` ) ;
32-
3340 if ( result !== 'success' ) {
3441 throw msg ;
3542 }
36- alert ( msg ) ;
43+ this . setState ( { submitted : true , response : msg } ) ;
3744 } )
3845 . catch ( err => {
39- console . log ( 'err' , err ) ;
40- alert ( err ) ;
46+ console . error ( err ) ;
47+ this . setState ( {
48+ errored : true ,
49+ response : 'Failed to submit your mail address.' ,
50+ } ) ;
4151 } ) ;
4252 } ;
4353
@@ -84,7 +94,7 @@ class ContactPage extends React.Component {
8494 < div class = "col-lg-12 text-center" >
8595 < form onSubmit = { this . _handleSubmit } >
8696 < div class = "form-group" >
87- < label for = "mce-EMAIL " className = "col-form-label" >
97+ < label for = "email " className = "col-form-label" >
8898 Email address< span class = "asterisk" > *</ span >
8999 </ label >
90100 < input
@@ -93,11 +103,12 @@ class ContactPage extends React.Component {
93103 placeholder = "email"
94104 name = "email"
95105 className = "form-control"
96- id = "mce-EMAIL"
106+ id = "email"
107+ required
97108 />
98109 </ div >
99110 < div class = "form-group" >
100- < label for = "mce-FNAME " className = "col-form-label" >
111+ < label for = "fname " className = "col-form-label" >
101112 First name< span class = "asterisk" > *</ span >
102113 </ label >
103114 < input
@@ -106,11 +117,12 @@ class ContactPage extends React.Component {
106117 placeholder = "first name"
107118 name = "fname"
108119 className = "form-control"
109- id = "mce-FNAME"
120+ id = "fname"
121+ required
110122 />
111123 </ div >
112124 < div class = "form-group" >
113- < label for = "mce-LNAME " className = "col-form-label" >
125+ < label for = "lname " className = "col-form-label" >
114126 Surname< span class = "asterisk" > *</ span >
115127 </ label >
116128 < input
@@ -119,12 +131,13 @@ class ContactPage extends React.Component {
119131 placeholder = "surname"
120132 name = "lname"
121133 className = "form-control"
122- id = "mce-LNAME"
134+ id = "lname"
135+ required
123136 />
124137 </ div >
125138
126139 < div class = "form-group" >
127- < label for = "mce-MESSAGE " className = "col-form-label" >
140+ < label for = "message " className = "col-form-label" >
128141 Interested in …
129142 </ label >
130143 < input
@@ -133,12 +146,20 @@ class ContactPage extends React.Component {
133146 placeholder = "Write your message!"
134147 name = "message"
135148 className = "form-control"
136- id = "mce-MESSAGE "
149+ id = "message "
137150 />
138151 </ div >
139152 < div id = "mce-responses" class = "clear" >
140- < div class = "response" id = "mce-error-response" > </ div >
141- < div class = "response" id = "mce-success-response" > </ div >
153+ { this . state . errored && (
154+ < div class = "alert alert-warning" id = "mce-error-response" >
155+ { this . state . response }
156+ </ div >
157+ ) }
158+ { this . state . submitted && (
159+ < div class = "alert alert-success" id = "mce-success-response" >
160+ { this . state . response }
161+ </ div >
162+ ) }
142163 </ div >
143164 < p class = "m-t-sm" > * required fields</ p >
144165
0 commit comments