Demos
See Wizard.Container demo section for more examples.
Dynamic steps
Code Editor
<Form.Handler defaultData={{ includedSteps: 'group-1', }} > <Wizard.Container onStepChange={(index, mode, args) => { console.log('onStepChange', index, mode, args.id) }} > <Wizard.Step title="Step A" id="step-a" includeWhen={{ path: '/includedSteps', hasValue: 'group-1', }} > <Form.MainHeading>Step A</Form.MainHeading> <Wizard.Buttons /> </Wizard.Step> <Wizard.Step title="Step B" id="step-b" includeWhen={{ path: '/includedSteps', hasValue: 'group-1', }} > <Form.MainHeading>Step B</Form.MainHeading> <Wizard.Buttons /> </Wizard.Step> <Wizard.Step title="Step C" id="step-c" includeWhen={{ path: '/includedSteps', hasValue: (value: string) => ['group-1', 'group-2'].includes(value), }} > <Form.MainHeading>Step C</Form.MainHeading> <Wizard.Buttons /> </Wizard.Step> <Wizard.Step title="Step D" id="step-d" includeWhen={{ path: '/includedSteps', hasValue: 'group-2', }} > <Form.MainHeading>Step D</Form.MainHeading> <Wizard.Buttons /> </Wizard.Step> </Wizard.Container> <Field.Selection path="/includedSteps" variant="button" optionsLayout="horizontal" top > <Field.Option value="group-1" title="Group 1" /> <Field.Option value="group-2" title="Group 2" /> </Field.Selection> </Form.Handler>
Inactive control
If you need more control over what steps the user can freely navigate to, the inactive property allows you to treat a step as non-navigable even if it would be normally.
In this example, the first step is never clickable, and you can never skip ahead, even if the next steps have been visited.
Code Editor
const Component = () => { const { activeIndex } = Wizard.useStep('unique-id-inactive') return ( <Wizard.Container mode="strict" id="unique-id-inactive" initialActiveIndex={2} expandedInitially > <Wizard.Step title="Step 1" inactive> <Wizard.Buttons /> </Wizard.Step> <Wizard.Step title="Step 2" inactive={activeIndex < 1}> <Wizard.Buttons /> </Wizard.Step> <Wizard.Step title="Step 3" inactive={activeIndex < 2}> <Wizard.Buttons /> </Wizard.Step> <Wizard.Step title="Step 4" inactive={activeIndex < 3}> <Wizard.Buttons /> </Wizard.Step> </Wizard.Container> ) } render(<Component />)