Svelte (@frontmail/svelte)
npm install @frontmail/svelteVyžaduje Svelte 5. Funguje v SvelteKite (v prehliadači).
createFrontmail
Section titled “createFrontmail”Vytvorte jednu inštanciu, napríklad v src/lib/frontmail.ts:
import { createFrontmail } from '@frontmail/svelte';
export const frontmail = createFrontmail({ publicKey: 'pk_4f2a…', blockHeadless: true });Inštancia má send, sendForm, getStatus, reset a dva story: state
({ status, error, result } posledného odoslania) a status. Prvá vytvorená inštancia sa stane
predvolenou pre action aj komponent.
<script> import { frontmail } from '$lib/frontmail'; const { status } = frontmail;</script>
<button onclick={() => frontmail.send('svc_01J9…', 'tpl_ping', { note: 'Ahoj' })}>Odoslať</button><p>{$status}</p>use:frontmailForm
Section titled “use:frontmailForm”Urobí z ľubovoľného formulára formulár Frontmailu:
<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'}>Odoslať</button></form>Parametre: serviceId, templateId, frontmail (inštancia), turnstileSiteKey,
turnstileOptions, locale, sendOptions, resetOnSuccess (predvolene true), onSuccess,
onError, onState. Formulár navyše dostane atribút data-status, ktorý môžete štýlovať.
locale (napr. 'de') pošle e-mail v zadanom jazyku šablóny
(ako pole formulára fm_locale; pole fm_locale priamo vo formulári má prednosť). result.locale
je použitý jazyk. <FrontmailForm> berie rovnaký prop locale a send /
sendForm inštancie ho prijímajú ako options.locale.
turnstileSiteKey je site key vášho vlastného widgetu Turnstile (v dashboarde Zabezpečenie →
Ochrana pred botmi (Turnstile)) – pozrite Cloudflare Turnstile. Ak šablóna
CAPTCHA nevyžaduje, vynechajte ho.
FrontmailForm.svelte
Section titled “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>Odoslať</button></FrontmailForm>Ukážkový projekt: examples/svelte.