Skip to content

Multi-Step Forms

ts
import { useMultiStepForm } from '@macrulez/vue-form-schema'

const wizard = useMultiStepForm(
  [
    { title: 'Account', schema: accountFields },
    { title: 'Profile', schema: profileFields },
    { title: 'Confirm', schema: confirmFields },
  ],
  async (allValues) => {
    await api.register(allValues)
  },
)

useMultiStepForm return value

currentStep

Ref<number>

0-based index.

totalSteps

number

Number of steps.

isFirstStep / isLastStep

ComputedRef<boolean>

form

UseFormReturn

For the current step.

values

All values across all steps merged.

next()

Validate current step then advance (returns false if invalid).

back()

Go to previous step.

goTo(n)

Jump to step n.

submit()

Validate all steps then call onSubmit.

MultiStepFormRenderer

vue
import { MultiStepFormRenderer } from '@macrulez/vue-form-schema/ui'

<MultiStepFormRenderer :wizard="wizard" />

Renders the current step's fields and Back / Next / Submit navigation buttons.