Svelte (@frontmail/svelte)
npm install @frontmail/svelteWymaga Svelte 5. Działa w SvelteKit (w przeglądarce).
createFrontmail
Dział zatytułowany „createFrontmail”Utwórz jedną instancję, na przykład w src/lib/frontmail.ts:
import { createFrontmail } from '@frontmail/svelte';
export const frontmail = createFrontmail({ publicKey: 'pk_4f2a…', blockHeadless: true });Instancja ma send, sendForm, getStatus, reset i dwa store’y: state
({ status, error, result } ostatniej wysyłki) i status. Pierwsza utworzona instancja staje się
domyślną dla akcji i komponentu.
<script> import { frontmail } from '$lib/frontmail'; const { status } = frontmail;</script>
<button onclick={() => frontmail.send('svc_01J9…', 'tpl_ping', { note: 'Cześć' })}>Wyślij</button><p>{$status}</p>use:frontmailForm
Dział zatytułowany „use:frontmailForm”Zamienia dowolny formularz w formularz Frontmail:
<script> import { frontmailForm } from '@frontmail/svelte'; let status = $state('idle');</script>
<form use:frontmailForm={{ serviceId: 'svc_01J9…', templateId: 'tpl_contact', turnstileSiteKey: 'YOUR_TURNSTILE_SITE_KEY', onState: (s) => (status = s.status), }}> <input name="name" required /> <input name="email" type="email" required /> <textarea name="message" required></textarea> <button disabled={status === 'sending'}>Wyślij</button></form>Parametry: serviceId, templateId, frontmail (instancja), turnstileSiteKey,
turnstileOptions, locale, sendOptions, resetOnSuccess (domyślnie true), onSuccess,
onError, onState. Formularz dostaje też atrybut data-status, który możesz stylować.
locale (np. 'de') wysyła e-mail w tym języku szablonu (jako pole
formularza fm_locale; pole fm_locale wewnątrz formularza ma pierwszeństwo). result.locale to
użyty język. <FrontmailForm> przyjmuje taki sam prop locale, a send / sendForm instancji –
jako options.locale.
turnstileSiteKey to site key twojego własnego widgetu Turnstile (w panelu Bezpieczeństwo →
Ochrona przed botami (Turnstile)) – zobacz Cloudflare Turnstile. Jeśli
szablon nie wymaga CAPTCHA, pomiń go.
FrontmailForm.svelte
Dział zatytułowany „FrontmailForm.svelte”<script> import { FrontmailForm } from '@frontmail/svelte';</script>
<FrontmailForm serviceId="svc_01J9…" templateId="tpl_contact" turnstileSiteKey="YOUR_TURNSTILE_SITE_KEY"> <input name="email" type="email" required /> <textarea name="message" required></textarea> <button>Wyślij</button></FrontmailForm>Przykładowy projekt: examples/svelte.