Skip to content

Commit 3102352

Browse files
refactor(newsletter): rename healthInterests to researchTopics in NewsletterSignup and subscription API; update related comments and form handling
1 parent 714ff79 commit 3102352

2 files changed

Lines changed: 23 additions & 8 deletions

File tree

‎src/app/api/subscribe/route.js‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export async function POST(request) {
77
country,
88
gender,
99
yearOfBirth,
10-
healthInterests,
10+
researchTopics,
1111
signupSource,
1212
} = await request.json();
1313

@@ -43,10 +43,10 @@ export async function POST(request) {
4343
if (firstName) merge_fields.FNAME = firstName;
4444
// For custom fields like Gender, Year of Birth, and Interests,
4545
// you must define corresponding Merge Tags in your Mailchimp Audience settings.
46-
// e.g., GENDER, YOB, INTERESTS
46+
// e.g., GENDER, YOB, TOPICS
4747
if (gender) merge_fields.GENDER = gender;
4848
if (yearOfBirth) merge_fields.YOB = yearOfBirth;
49-
if (healthInterests) merge_fields.INTERESTS = healthInterests;
49+
if (researchTopics) merge_fields.TOPICS = researchTopics;
5050
if (country && country.length > 0) merge_fields.COUNTRY = country.join(', ');
5151

5252
const data = {

‎src/components/NewsletterSignup.js‎

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export default function NewsletterSignup({ compact = false }) {
7070
country: [], // Changed to array for multi-select
7171
gender: '',
7272
yearOfBirth: '',
73-
healthInterests: '',
73+
researchTopics: '',
7474
signupSource: '',
7575
});
7676
const emailInputRef = useRef(null);
@@ -137,7 +137,7 @@ export default function NewsletterSignup({ compact = false }) {
137137
formData.country.length > 0 ||
138138
formData.gender ||
139139
formData.yearOfBirth ||
140-
formData.healthInterests;
140+
formData.researchTopics;
141141

142142
if (isExpanded && !hasAnyData) {
143143
setIsExpanded(false);
@@ -181,7 +181,22 @@ export default function NewsletterSignup({ compact = false }) {
181181
if (response.ok) {
182182
setStatus('success');
183183
setMessage('Thank you for subscribing!');
184-
// Reset form if needed
184+
// Clear form data immediately to prevent "unsaved changes" warnings
185+
setFormData({
186+
email: '',
187+
firstName: '',
188+
country: [],
189+
gender: '',
190+
yearOfBirth: '',
191+
researchTopics: '',
192+
signupSource: pathname, // Keep the signup source
193+
});
194+
195+
setTimeout(() => {
196+
setIsExpanded(false);
197+
setMessage('');
198+
setStatus('idle');
199+
}, 3000);
185200
} else {
186201
setStatus('error');
187202
setMessage(result.error || 'Something went wrong. Please try again.');
@@ -380,9 +395,9 @@ export default function NewsletterSignup({ compact = false }) {
380395
id="newsletter-interests"
381396
label="Topics you're interested in (Optional, comma-separated)"
382397
type="text"
383-
name="healthInterests"
398+
name="researchTopics"
384399
placeholder="e.g., Cancer research, Longevity, Wearable data, Cystic Fibrosis research"
385-
value={formData.healthInterests}
400+
value={formData.researchTopics}
386401
onChange={handleInputChange}
387402
/>
388403
</div>

0 commit comments

Comments
 (0)