Skip to content

EventCalendar ​

Un calendrier d'événements : mois, semaine, agenda.

Il affiche et signale ; il ne gère pas. Un clic sur un jour appelle onDateClick, un clic sur un événement onEventClick — EventManager s'y branche pour créer, consulter, modifier et supprimer. Les données viennent du serveur : onRangeChange donne la période à charger.

Étroit, la grille du mois n'affiche plus que des points de couleur, et les événements du jour choisi s'affichent dessous : une case de 45 px ne se lit pas, une liste si.

Installation ​

bash
sia-ui add event-calendar

Ou par le paquet, sans rien copier :

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

Props ​

PropTypeDéfautDescription
* eventsT[]—
classNamestring—
datestring—Un jour de la période affichée (2026-09-30). Aujourd'hui par défaut.
defaultDatestring—
defaultMonthstring—@deprecated Ancien nom de defaultDate, au mois près.
defaultValuestring—@deprecated Ancien nom de defaultDate.
defaultViewCalendarViewmonth
density"compact" | "comfortable"comfortablecompact resserre les cases et la grille horaire.
emptyStatePropsEmptyStateProps—L'agenda vide.
eventVariant"soft" | "solid" | "outline"softLe rendu des événements : fond léger, plein, ou contour.
firstDayOfWeek0 | 11
labelsEventCalendarMessages—Remplace, clé par clé, les textes du groupe eventCalendar de la locale.
loadingbooleanfalse
localestring—La langue des dates. Par défaut, celle de la locale SIA.
maxEventsPerDaynumber3Événements visibles par case en vue mois ; le reste passe dans « +N ».
moreButtonPropsPartial<Omit<ButtonProps, "children" | "onClick">>—Le bouton « +N autres » d'une case chargée.
navButtonPropsPartial<Omit<IconButtonProps, "icon" | "onClick" | "label">>—Les flèches de période.
onDateChange(date: string) => void—
onDateClick(date: string, time?: string) => void—Un clic sur un jour, hors événement : le moment de créer. Dans la grille horaire, time donne la demi-heure visée (14:30).
onEventClick(event: T) => void—
onRangeChange(range: { start: string; end: string; }, view: CalendarView) => void—La période visible, bornes incluses, à chaque changement de vue ou de période — et au premier affichage. C'est elle qu'on demande au serveur.
onViewChange(view: CalendarView) => void—
popoverPropsPartial<Omit<PopoverProps, "children" | "content">>—La liste complète d'un jour chargé (« +N autres »).
renderEvent(event: T, placement: DayEvent<any>) => ReactNode—Remplace le contenu d'un événement. Le bouton qui l'entoure reste.
scrollToHournumber8L'heure affichée en haut de la grille horaire à l'ouverture. 8 h par défaut.
spinnerPropsPartial<Omit<SpinnerProps, "label">>—Le témoin de chargement de la barre.
toolbarActionsReactNode—Actions à droite de la barre : « Nouvel événement », un filtre.
toolbarButtonPropsPartial<Omit<ButtonProps, "children" | "onClick">>—Le bouton « Aujourd'hui ».
variant"bordered" | "soft" | "minimal"borderedL'habillage de la grille. bordered : des cases tracées, comme un agenda papier. minimal : aucune bordure intérieure, les jours se lisent à leur numéro. soft : des cases sur fond teinté, séparées par des blancs.
viewCalendarView—La vue affichée — mois, semaine, agenda.
viewButtonPropsPartial<Omit<RadioButtonProps, "children" | "value">>—Chaque bouton de vue.
viewsCalendarView[]["month", "week", "day", "agenda"]Les vues proposées. Une seule masque le sélecteur.
viewSwitchPropsPartial<Omit<RadioGroupProps, "children" | "value" | "defaultValue" | "onValueChange">>—Le sélecteur de vue — un RadioGroup en boutons.

* obligatoire.

Voir aussi ​

Publié sous licence MIT.