Scoped

Using the Scoped component to share stepper state across child components

The Scoped component acts as a provider, allowing you to synchronize stepper state via useStepper across child components.

Basic Usage

import * as React from "react";
import {  } from "@stepperize/react";
 
const  = (
  { : "first", : "First" },
  { : "second", : "Second" },
  { : "last", : "Last" }
);
 
export const  = () => (
  <.>
    < />
    < />
  </.>
);
 
const  = () => {
  const {  } = .();
  return (
    <React.>
      {("first", () => (
        <>Starting with {.}</>
      ))}
      {("second", () => (
        <>In the middle: {.}</>
      ))}
    </React.>
  );
};
 
const  = () => {
  const { , , ,  } = .();
  return (
    < ={ ?  : }>
      {(
        "last",
        () => "Reset",
        () => "Next"
      )}
    </>
  );
};

When to use Scoped

Use Scoped only when child components need access to stepper state. Otherwise, use the hook directly in your component.

API Reference

NameTypeDescriptionRequired
initialStepstringID of the initial step to display.No
initialMetadataRecord<string, Metadata>Initial metadata for the stepper.No
childrenReact.ReactNodeContent to render inside the stepper.Yes

Nested Scopes

You can nest multiple scopes for more complex stepper hierarchies:

import * as React from "react";
import { defineStepper } from "@stepperize/react";
// ---cut-before---
const GlobalStepper = defineStepper(
  { id: "start", title: "Start" },
  { id: "middle", title: "Middle" },
  { id: "end", title: "End" }
);
 
const LocalStepper = defineStepper(
  { id: "sub1", title: "Sub-step 1" },
  { id: "sub2", title: "Sub-step 2" }
);
 
export const NestedSteppers = () => (
  <GlobalStepper.Scoped>
    <GlobalStepContent />
    <GlobalNavigation />
    <LocalStepper.Scoped>
      <LocalStepContent />
      <LocalNavigation />
    </LocalStepper.Scoped>
  </GlobalStepper.Scoped>
);
 
// Use GlobalStepper.useStepper() for global scope
// Use LocalStepper.useStepper() for local scope

This structure allows for independent control of global and local stepper states.

Edit on GitHub

Last updated on

On this page