Skip to content
This repository was archived by the owner on Apr 21, 2026. It is now read-only.

Commit 620b28c

Browse files
committed
Correct submitted field names
Add responses to signal if the form was submitted correctly
1 parent c58adae commit 620b28c

2 files changed

Lines changed: 40 additions & 19 deletions

File tree

src/pages/contact/index.js

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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 &hellip;
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

src/scss/style.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
// @import "bootstrap/pagination";
2828
// @import "bootstrap/badge";
2929
// @import "bootstrap/jumbotron";
30-
// @import "bootstrap/alert";
30+
@import 'bootstrap/alert';
3131
// @import "bootstrap/progress";
3232
// @import "bootstrap/media";
3333
// @import "bootstrap/list-group";

0 commit comments

Comments
 (0)