DS

Form

Composants de formulaire construits sur react-hook-form et Zod. Fournit une gestion automatique des labels, descriptions, messages d'erreur et accessibilite (aria).

Preview

Formulaire avec validation Zod. Essayez de soumettre le formulaire vide pour voir les messages d'erreur.

Un nom pour identifier cette session de speedcubing.

Le type de puzzle pour cette session.

Architecture

Le systeme de formulaire repose sur un ensemble de composants imbriques qui communiquent via le contexte React.

<Form>                    {/* = FormProvider de react-hook-form */}
  <FormField>             {/* Connecte un champ au formulaire via Controller */}
    <FormItem>            {/* Conteneur avec espacement (space-y-2) */}
      <FormLabel />       {/* Label avec lien automatique via htmlFor */}
      <FormControl />     {/* Slot qui transmet id, aria-describedby, aria-invalid */}
      <FormDescription /> {/* Texte d'aide sous le champ */}
      <FormMessage />     {/* Message d'erreur (affiche automatiquement) */}
    </FormItem>
  </FormField>
</Form>

Props

Form

PropTypeDefaultDescription
...methodsUseFormReturnResultat de useForm() de react-hook-form. Passe via spread : <Form {...form}>.

FormField

PropTypeDefaultDescription
controlControlL'objet control retourne par useForm().
namestringNom du champ dans le schema. Doit correspondre a une cle du schema Zod.
render({ field }) => ReactNodeFonction de rendu qui recoit les props du champ (value, onChange, onBlur, ref).

FormItem

PropTypeDefaultDescription
classNamestringClasses CSS additionnelles. Par defaut : space-y-2.

FormLabel

PropTypeDefaultDescription
classNamestringClasses CSS additionnelles. Devient rouge (text-destructive) en cas d'erreur.

FormControl

PropTypeDefaultDescription
childrenReactNodeL'input ou le composant de formulaire. Recoit automatiquement id, aria-describedby et aria-invalid.

FormDescription

PropTypeDefaultDescription
childrenReactNodeTexte d'aide affiche sous le champ. text-sm text-muted-foreground.

FormMessage

PropTypeDefaultDescription
childrenReactNodeContenu de remplacement. Par defaut, affiche automatiquement le message d'erreur du champ. text-sm text-destructive.