Skip to content

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-manager

Ou par le paquet, sans rien copier :

tsx
import { EventManager } from "@sia-ui/react-web";

Props ​

PropTypeDéfautDescription
* eventsT[]—
calendarPropsPartial<Omit<EventCalendarProps<T>, "events" | "onDateClick" | "onEventClick">>—Le calendrier lui-même : vues, variantes, période, rendu des événements.
classNamestring—
confirmDialogPropsPartial<Omit<ConfirmDialogProps, "open" | "onOpenChange" | "onConfirm">>—La confirmation de suppression.
createButtonPropsPartial<Omit<ButtonProps, "onClick">>—Le bouton « Nouvel événement » de la barre.
descriptionsPropsPartial<Omit<DescriptionsProps, "items">>—La fiche d'un événement, hors rubriques qu'elle tire de l'événement.
extraDefaultsFormShape{}Les valeurs de départ de ces champs, et comment les relire sur un événement.
extraFieldsFormEntry[][]Des champs métier en plus : participants, salle, rappel. Leurs valeurs arrivent dans le brouillon.
formPropsPartial<Omit<FormProps, "form" | "onSubmit" | "fields" | "defaultValues" | "validate">>—Le formulaire, hors champs, valeurs et envoi qu'il reçoit d'ici.
labelsEventManagerMessages—Remplace, clé par clé, les textes du groupe eventManager de la locale.
localestring—La langue des dates de la fiche. Par défaut, celle de la locale SIA.
modalPropsPartial<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.
toneBadgePropsPartial<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 ​

Publié sous licence MIT.