import { QwikSubmitEvent, component$, useSignal, useStylesScoped$, $, } from '@builder.io/qwik'; import { $translate as t } from 'qwik-speak'; import Button, { ButtonTheme } from '../../button/button'; import Section from '../../section/section'; import { centerShape, leftShape, rightShape } from './shapes'; import styles from './subscribe.css?inline'; import Line from '../../line/line'; export default component$(() => { useStylesScoped$(styles); const loading = useSignal(false); const success = useSignal(false); const handleSubmit = $((event: QwikSubmitEvent) => { const form = event.target as any; const formData = new FormData(form); if (!formData.get('email')) { return; } loading.value = true; success.value = false; fetch('/docs/submit-form', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams(formData as any).toString(), }) .then(() => { success.value = true; loading.value = false; form.reset(); }) .catch((error) => (loading.value = false)); }); return (

{t('subscribe.title@@Subscribe to our email newsletter!')}

{success.value && (
Subscribed successfully!
)} {!success.value && (
handleSubmit(e as any)} preventdefault:submit class="flex flex-col md:grid md:grid-cols-[1fr_auto] items-center w-full gap-4" >
)}
{leftShape}
{centerShape}
{rightShape}
); });