Composant de navigation qui affiche une barre de progression et des indicateurs d'étapes pour guider l'utilisateur dans un formulaire multi-étapes.
Utilisez le composant StepNavigation sans props (il utilise le composable useForm automatiquement) :
<template>
<StepNavigation />
</template>
Le composant s'intègre automatiquement avec le composable useForm pour gérer la navigation :
<template>
<div>
<StepNavigation />
<!-- Contenu de l'étape actuelle -->
<div v-if="currentStep === 1">
<!-- Étape 1 -->
</div>
</div>
</template>
<script setup>
const { currentStep, nextStep, prevStep } = useForm();
</script>
Ce composant n'accepte aucune prop. Il utilise directement le composable useForm() pour récupérer l'état de navigation.
Ce composant n'émet aucun événement.
Ce composant n'expose aucun slot.
<template>
<div>
<StepNavigation />
<div v-if="currentStep === 1">
<h2>Étape 1 : Localisation</h2>
<!-- Formulaire étape 1 -->
</div>
<div v-if="currentStep === 2">
<h2>Étape 2 : Équipement</h2>
<!-- Formulaire étape 2 -->
</div>
<!-- Les boutons Précédent/Suivant sont gérés par StepNavigation -->
</div>
</template>
<script setup>
const { currentStep } = useForm();
</script>
<template>
<div>
<StepNavigation />
<!-- Navigation personnalisée supplémentaire -->
<div class="flex gap-2 mt-4">
<UButton @click="goToStep(1)">Aller à l'étape 1</UButton>
<UButton @click="goToStep(3)">Aller à l'étape 3</UButton>
</div>
</div>
</template>
<script setup>
const { goToStep } = useForm();
</script>
Le composant affiche automatiquement les titres des étapes :
Le bouton "Suivant" est désactivé si l'étape actuelle n'est pas complétée (vérifié via isStepCompleted(currentStep)).