Skip to content

ActivityLog ​

Un journal d'activité, filtrable et paginé par le serveur.

AuditMeta et Timeline racontent l'histoire d'un objet ; ce bloc sert l'autre question — qui a fait quoi, sur tout le système, cette semaine. Filtres déclarés, recherche temporisée, pagination et taille de page : tout passe par la requête, rien n'est filtré dans le navigateur.

Installation ​

bash
sia-ui add activity-log

Ou par le paquet, sans rien copier :

tsx
import { ActivityLog, activityColumns } from "@sia-ui/react-web";

Props de activityColumns ​

Les colonnes d'une ActivityEntry : quand, qui, quoi, sur quoi.

PropTypeDéfautDescription
actionBadgePropsPartial<Omit<StatusBadgeProps, "value">>—Les props du StatusBadge de la colonne « Action », sans value.
actionLabelsRecord<string, ReactNode>—
actionTonesRecord<string, ComponentTone>—
languagestring—La langue des dates. Par défaut, fr-FR.
messagesany—Les en-têtes : le groupe activityLog de la locale. Français par défaut.

Props de ActivityLog ​

PropTypeDéfautDescription
* entriesT[]—
* queryTableQuery—L'état de la requête : page, taille, recherche, filtres. useDataTableQuery() le fournit, synchronisé avec l'URL ou le routeur ; query.params part tel quel au serveur. Le journal ne filtre rien lui-même : un journal se compte en milliers de lignes.
actionBadgePropsPartial<Omit<StatusBadgeProps, "value">>—Les props du StatusBadge de la colonne « Action » par défaut. Sans value, lue sur l'entrée. Sans effet quand columns est fourni.
actionLabelsRecord<string, ReactNode>—Le libellé de chaque action — « Suppression » pour delete.
actionTonesRecord<string, ComponentTone>—Le ton de chaque action dans les colonnes par défaut.
classNamestring—
columnsDataTableColumn<T>[]—Par défaut, les colonnes d'une ActivityEntry.
descriptionReactNode—
empty{ title?: ReactNode; description?: ReactNode; action?: ReactNode; icon?: ReactNode; }—
errorReactNode—
filtersActivityLogFilter[][]
filtersBarPropsPartial<Omit<FiltersBarProps, "search" | "filters" | "activeCount" | "onReset">>—Les props de la FiltersBar — des actions, un autre libellé de réinitialisation. Sans search, filters, activeCount ni onReset, que le journal compose à partir de la requête.
filterSelectPropsPartial<Omit<SelectProps, "value" | "onValueChange" | "options">>—Les props communes aux Select des filtres. Sans value, onValueChange ni options, propres à chaque filtre et branchés sur la requête.
getRowKey(row: T, index: number) => Key—
headingLevel1 | 2 | 3—
loadingbooleanfalse
onRetry() => void—
pageHeaderPropsPageHeaderProps—Les props du PageHeader, rendu quand title est fourni.
paginationPropsPartial<Omit<PaginationProps, "page" | "totalPages" | "onPageChange" | "pageSize" | "onPageSizeChange">>—Les props de la Pagination — jumpTo, pageSizeOptions. Sans la page et la taille de page ni leurs changements, branchés sur la requête.
searchInputPropsPartial<Omit<SearchInputProps, "value" | "defaultValue" | "onValueChange" | "onSearch">>—Les props du champ de recherche. Sans value, defaultValue, onValueChange ni onSearch : la recherche en vigueur vit dans la requête.
searchPlaceholderstring—Absente, la recherche n'est pas proposée.
tablePropsPartial<Omit<DataTableProps<T>, "columns" | "data">>—Les props du DataTable — densité, mode cartes, sélection. Sans columns ni data, qui ont leurs props ici.
titleReactNode—
totalPagesnumber—

* obligatoire.

Voir aussi ​

Publié sous licence MIT.