Skip to content

Commit 079e887

Browse files
committed
Fix newsletter form.
1 parent 993bce6 commit 079e887

File tree

2 files changed

+14
-52
lines changed

2 files changed

+14
-52
lines changed

components/NewsletterForm.js

+11-4
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,28 @@ import CheckmarkCircleIcon from "./icons/CheckmarkCircleIcon.js";
44
import MailCircleIcon from "./icons/MailCircleIcon.js";
55
import PointerCircleIcon from "./icons/PointerCircleIcon.js";
66
import { useI18n } from "../lib/i18n";
7+
78
const newsletterFormEndpoint =
89
"https://geops.us4.list-manage.com/subscribe/post?u=23161055bb6a407f7e6c00038&id=c9694280f7";
10+
911
export default function NewsletterForm({ translations }) {
1012
const refHeader = createRef();
1113
const [submitted, setSubmitted] = useState(false);
1214
const { language } = useI18n();
13-
const handleSubmit = (event) => {
14-
const body = new FormData(event.target);
15+
16+
const handleSubmit = async (event) => {
1517
event.preventDefault();
1618
refHeader.current.scrollIntoView({ behavior: "smooth" });
1719
try {
18-
fetch(newsletterFormEndpoint, { method: "POST", body });
20+
await fetch(newsletterFormEndpoint, {
21+
body: new FormData(event.target),
22+
method: "POST",
23+
mode: "no-cors",
24+
});
25+
setSubmitted(true);
1926
} catch (error) {}
20-
setSubmitted(true);
2127
};
28+
2229
return (
2330
<form
2431
className="container mx-auto max-w-screen-lg p-8"

components/NewsletterTeaser.js

+3-48
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,14 @@
1+
import Teaser from "./Teaser";
12
import { useI18n } from "../lib/i18n";
2-
import useIntersectionOberserver from "../lib/useIntersectionOberserver";
3-
4-
const buttonClassName =
5-
"bg-green py-4 px-14 text-white font-bold rounded inline-block hover:bg-green-light transition duration-300 ease-in-out";
6-
7-
// Workaround to link to external newsletter page
8-
// TODO: fix signup on our own /newsletter page
9-
function CustomTeaser(props) {
10-
const contentRef = useIntersectionOberserver("opacity-0", 0.2);
11-
let teaserTitle = "";
12-
13-
if (props.toHeading) {
14-
teaserTitle = `<h1 class="break-words w-full">${props.title}</h1>`;
15-
} else {
16-
teaserTitle = `<h2 class="break-words w-full text-5xl">${props.title}</h2>`;
17-
}
18-
19-
return (
20-
<section className={props.containerClassName || "bg-white"}>
21-
<div
22-
className="container mx-auto px-8 py-16 md:py-24 text-center flex flex-col items-center transform transition-opacity duration-1000"
23-
ref={contentRef}
24-
>
25-
<div
26-
className="mb-7"
27-
dangerouslySetInnerHTML={{ __html: teaserTitle }}
28-
></div>
29-
{props.subtitle && (
30-
<h3
31-
className={`mb-16 max-w-md text-2xl ${
32-
props.subtitleClassName || ""
33-
}`}
34-
>
35-
{props.subtitle}
36-
</h3>
37-
)}
38-
{props.text && (
39-
<p className="mb-16 md:px-16 lg:px-32 text-left">{props.text}</p>
40-
)}
41-
<a className={buttonClassName} href={props.href} target="newsletter">
42-
{props.action}
43-
</a>
44-
</div>
45-
</section>
46-
);
47-
}
483

494
export default function NewsletterTeaser() {
505
const { t } = useI18n();
516
return (
52-
<CustomTeaser
7+
<Teaser
538
title={t("newsletterTeaser.title")}
549
subtitle={t("newsletterTeaser.subtitle")}
5510
action={t("newsletterTeaser.action")}
56-
href="http://geops.sh/geopsnews"
11+
href="/newsletter"
5712
/>
5813
);
5914
}

0 commit comments

Comments
 (0)