z-uiDesign system
Componentes · z-ui

ScreenSteppers

Orquestra as telas de um fluxo em etapas. Guarda a etapa atual num contexto, desenha o StepperProgress no topo e entrega avançar, voltar e ir para etapa pelo hook useScreenSteppers. Ao trocar de etapa, o foco vai para o conteúdo novo.

Fluxo do signatário

Conferir dados, ler o documento, tirar selfie e assinar. As etapas concluídas no topo são clicáveis.

Etapa 1 de 4

Confira seus dados

Marina Couto enviou o contrato de locação para você assinar.

Cabeçalho forçado

forceLayout fixa o cabeçalho em linha (mobile) ou empilhado (desktop), independente da largura da tela. No mobile os nomes das etapas somem.

Etapa 3 de 4

Tire uma selfie

Ela entra no relatório de evidências e confirma que é você quem assina.

Uso

<ScreenSteppers totalSteps={4} steps={["Conferir dados", "Ler o documento", "Tirar selfie", "Assinar"]}>
  <SignerFlow />
</ScreenSteppers>

function SignerFlow() {
  const { currentStep, nextStep, prevStep } = useScreenSteppers();
  if (currentStep === 1) return <ScreenStep title="Confira seus dados" actions={{ onNext: nextStep }} />;
}

Props

PropTipoPadrãoDescrição
totalStepsnumber—Quantidade de etapas.
initialStepnumber1Etapa inicial, contada a partir de 1.
stepsstring[]—Nomes das etapas para o StepperProgress.
brandReactNode—Marca ou ícone ao lado do indicador.
labelstring—Nome acessível do indicador de etapas.
onStepChange(step: number) => void—Chamado a cada troca de etapa.
forceLayout"mobile" | "desktop"—Fixa o arranjo do cabeçalho.
mapDisplayStep(current, total) => { current, total }—Converte a etapa lógica na exibida, quando há etapas ocultas. Desliga o clique nas etapas.

useScreenSteppers

PropTipoPadrãoDescrição
currentStepnumber—Etapa atual.
totalStepsnumber—Total de etapas.
nextStep / prevStep() => void—Avança ou volta uma etapa, sem passar dos limites.
goToStep(step: number) => void—Vai direto para uma etapa.
isFirstStep / isLastStepboolean—Indica as pontas do fluxo.