EventManager
Un calendrier où l'on gère ses événements.
Il assemble ce qui existe — `EventCalendar` pour voir, `Modal` et `Form` pour saisir, `ConfirmDialog` pour supprimer — et tient le reste :
- un clic sur un jour ouvre la création à cette date, et à la demi-heure visée dans la grille horaire ;
- un clic sur un événement ouvre sa fiche, d'où l'on modifie ou supprime ;
- un refus du serveur garde le formulaire ouvert, erreurs sous les champs.
Les données restent à l'appelant : onCreate, onUpdate et onDelete reçoivent un brouillon prêt à envoyer, et le calendrier affiche ce qu'on lui repasse dans events.
Installation
bash
sia-ui add event-managerOu par le paquet, sans rien copier :
tsx
import { EventManager } from "@sia-ui/react-web";Props
| Prop | Type | Défaut | Description |
|---|---|---|---|
* events | T[] | — | |
calendarProps | Partial<Omit<EventCalendarProps<T>, "events" | "onDateClick" | "onEventClick">> | — | Le calendrier lui-même : vues, variantes, période, rendu des événements. |
className | string | — | |
confirmDialogProps | Partial<Omit<ConfirmDialogProps, "open" | "onOpenChange" | "onConfirm">> | — | La confirmation de suppression. |
createButtonProps | Partial<Omit<ButtonProps, "onClick">> | — | Le bouton « Nouvel événement » de la barre. |
descriptionsProps | Partial<Omit<DescriptionsProps, "items">> | — | La fiche d'un événement, hors rubriques qu'elle tire de l'événement. |
extraDefaults | FormShape | {} | Les valeurs de départ de ces champs, et comment les relire sur un événement. |
extraFields | FormEntry[] | [] | Des champs métier en plus : participants, salle, rappel. Leurs valeurs arrivent dans le brouillon. |
formProps | Partial<Omit<FormProps, "form" | "onSubmit" | "fields" | "defaultValues" | "validate">> | — | Le formulaire, hors champs, valeurs et envoi qu'il reçoit d'ici. |
labels | EventManagerMessages | — | Remplace, clé par clé, les textes du groupe eventManager de la locale. |
locale | string | — | La langue des dates de la fiche. Par défaut, celle de la locale SIA. |
modalProps | Partial<Omit<ModalProps, "children" | "title" | "footer" | "open" | "onOpenChange">> | — | Les boîtes de fiche et de formulaire. |
onCreate | (draft: EventDraft) => any | — | Absent : pas de création. Rendre { champ: message } garde le formulaire ouvert. |
onDelete | (event: T) => void | Promise<void> | — | Absent : pas de suppression. Confirmée d'office. |
onUpdate | (event: T, draft: EventDraft) => any | — | Absent : les événements se consultent sans se modifier. |
renderDetail | (event: T) => ReactNode | — | Remplace le contenu de la fiche d'un événement. |
toneBadgeProps | Partial<Omit<BadgeProps, "children" | "tone">> | — | La pastille d'une couleur, dans la fiche et dans le choix des couleurs. |
toneOptions | { value: ComponentTone; label: string; }[] | — | Les couleurs proposées. Par défaut, les tons du système, nommés par la locale. |
* obligatoire.
Voir aussi
- Le composant dans le catalogue — états, variantes, et bac à sable.
- La référence complète — tous les composants.