ErlangFormDocs v1.0.0
Panduan integrasi

Wizard

Membagi form menjadi langkah dan memvalidasi perpindahannya.

1. Identitas2. Kontak

Identitas

Lengkapi langkah ini, lalu pilih Berikutnya.

Penggunaan

Gunakan form dari useForm. Lihat persiapan awal.

example.tsx
const schema = z.object({ name: z.string(), email: z.email() });

<ErlForm
  form={form}
  schema={schema}
  wizard={{
    steps: [
      { id: "identity", title: "Identitas", fields: ["name"] },
      { id: "contact", title: "Kontak", fields: ["email"] },
    ],
    validateStep: (step, values) => step === 0
      ? values.name.length >= 2
      : z.email().safeParse(values.email).success,
  }}
/>

wizard memfilter field root yang terlihat per langkah, sementara seluruh nilai tetap berada pada satu form. Berikut konfigurasi untuk schema dengan name dan email:

Konfigurasikan langkah dan validasi melalui prop wizard. Callback validateStep menahan perpindahan jika nilai belum sesuai.

Opsi

OpsiPerilaku
stepsDaftar langkah; id unik, title, description opsional, fields
previousLabelTombol kembali, default Previous
nextLabelTombol maju, default Next
firstStepLabelLabel tombol maju dari langkah pertama
lastStepLabelAda pada tipe, belum dipakai renderer 1.0.0
validateStepBoolean/Promise boolean; dipanggil sebelum maju
onStepChangeIndeks langkah setelah perpindahan, mulai dari 0

fields hanya menerima nama field root, bukan path child. Untuk object, masukkan nama object agar seluruh isinya tampil pada langkah tersebut. Siapkan steps tidak kosong dan stabil selama form digunakan.

Wizard tidak otomatis memvalidasi Zod saat Next, membuat tombol submit, atau menahan Enter pada HTML form. Aplikasi perlu mengatur submit sesuai langkah dan tetap memvalidasi seluruh schema sebelum menyimpan. Perpindahan mundur tidak memanggil validateStep. Tangani error callback async di aplikasi; tombol Next belum memiliki state pending bawaan.

Di halaman ini