Cerca...

Cerca nella documentazione...

Wizard

Wizard

Un flusso completo passo-passo: un'intestazione Stepper + il contenuto del passo corrente + navigazione Indietro/Avanti/Fine, con un validate asincrono opzionale per passo (ad es. bloccare l'avanzamento finché una sezione del form non è valida).

import { Wizard, type WizardStep } from "@pompeitech/vesuvius-ui";

Default

Un passo con validazione bloccante

validate viene eseguito prima di avanzare oltre un passo — restituisci (o risolvi) false per bloccare, ad es. attivando trigger() di react-hook-form per i campi di quel passo.

API

Wizard

PropTipoDefaultDescrizione
stepsWizardStep[]Obbligatorio.
activeStep / defaultActiveStepnumberIndice del passo corrente, controllato o non controllato.
onStepChange(index: number) => void
onFinish() => voidChiamata dopo che validate ha successo sull'ultimo passo.
orientation"horizontal" | "vertical""horizontal"Passata all'intestazione Stepper interna.
allowStepClickbooleantrueSalta a qualsiasi passo già visitato cliccandolo sull'intestazione Stepper.
nextLabel / backLabel / finishLabelstring"Next" / "Back" / "Finish"

WizardStep — estende StepperStep (title, description?, status?) con:

CampoTipoDescrizione
contentReactNodeObbligatorio — il corpo del passo, renderizzato mentre è attivo.
validate() => boolean | Promise<boolean>Viene eseguita prima di avanzare oltre questo passo; restituire (o risolvere) false blocca l'azione Avanti/Fine. Asincrona, così può attendere una chiamata di validazione di rete.

Accessibilità

L'intestazione Stepper mantiene la propria semantica role="tab"/aria-selected; Indietro/Avanti/Fine sono veri pulsanti, e un passo bloccato da validate semplicemente non avanza invece di disabilitare preventivamente il pulsante Avanti — abbina un validate fallito a un feedback visibile nel content stesso del passo (come fa l'esempio email con FormHelperText), dato che non esiste un annuncio d'errore integrato di per sé.