Formstorkdok
FiyatlandırmaENTRPanel

Next.js

Client component

En basit yaklaşım, bir client component içinde @formstork/react hook’unu kullanır.

"use client";
import { useFormstork } from "@formstork/react";

export function Contact() {
  const { submit, isSubmitting, isSuccess } = useFormstork({
    accessKey: process.env.NEXT_PUBLIC_FORMSTORK_KEY!,
  });

  if (isSuccess) return <p>Thanks for reaching out.</p>;
  return (
    <form onSubmit={submit}>
      <input type="email" name="email" required />
      <textarea name="message" required />
      <button disabled={isSubmitting}>Send</button>
    </form>
  );
}

Access key açığa çıkarılması güvenli olduğundan, NEXT_PUBLIC_ kullanmak uygundur.

Server action

İsteği sunucu tarafında tutmayı mı tercih edersiniz? Bir server action kullanın:

async function send(formData: FormData) {
  "use server";
  await fetch("https://api.formstork.com/submit", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      access_key: process.env.FORMSTORK_KEY,
      email: formData.get("email"),
      message: formData.get("message"),
    }),
  });
}

export default function Page() {
  return (
    <form action={send}>
      <input type="email" name="email" required />
      <textarea name="message" required />
      <button>Send</button>
    </form>
  );
}