Skip to content

LogStream ​

Un journal d'exécution qui se lit en direct.

Timeline raconte des événements ; ici, on suit une exécution : heure en colonne, niveau, police à chasse fixe, essais repliables. Le suivi de la fin se met en pause dès qu'on remonte — lire une erreur pendant que le journal défile sous les yeux est impossible — et un bouton dit combien de lignes sont arrivées entre-temps.

Installation ​

bash
sia-ui add log-stream

Ou par le paquet, sans rien copier :

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

Props ​

PropTypeDéfautDescription
* linesLogLine[]—
ariaLabelstring—Le nom de la zone pour les lecteurs d'écran.
classNamestring—
copiedLabelstring—
copyButtonPropsPartial<Omit<ButtonProps, "children" | "onClick">>—Le bouton de copie. Son action et son libellé suivent la copie.
copyLabelstring—
defaultCollapsedGroupsstring[]—Les groupes repliés au premier affichage.
defaultFollowbooleantrueVrai par défaut : un journal d'exécution se lit par la fin.
defaultLevelsLogLevel[]["debug", "info", "warn", "error", "success"]Tous par défaut.
emptyStatePropsEmptyStateProps—L'état vide : pas encore de ligne, ou aucune qui corresponde.
followboolean—Défiler jusqu'à la dernière ligne à chaque arrivée. Contrôlé quand il est fourni ; remonter dans le journal appelle alors onFollowChange(false).
followLabelstring—
followTogglePropsPartial<Omit<ToggleProps, "pressed" | "defaultPressed" | "onPressedChange">>—La bascule « Suivre la fin ». Son état est celui du suivi.
groupButtonPropsPartial<Omit<ButtonProps, "children" | "onClick" | "aria-controls" | "aria-expanded">>—L'en-tête repliable de chaque groupe. aria-expanded et aria-controls restent calculés groupe par groupe.
heightstring | number20remLa hauteur de la zone défilante. 20rem par défaut.
levelFilterPropsPartial<Omit<ToggleGroupProps, "value" | "defaultValue" | "onValueChange" | "options" | "type">>—Le filtre par niveau. Sans ses options ni sa valeur, tirées des niveaux, ni son type : on en retient plusieurs à la fois.
levelLabelsPartial<Record<LogLevel, string>>—Les libellés des niveaux, dans la colonne comme dans la copie.
levelsLogLevel[]—Les niveaux affichés. Contrôlé quand il est fourni.
loadingbooleanfalseLe premier chargement : rien n'est encore arrivé.
loadingLabelstring—
localestring—La langue du format horaire. Par défaut, celle de la locale SIA.
maxLinesnumber1000Le nombre de lignes gardées. Au-delà, les plus anciennes tombent. C'est la réponse à un journal qui grossit sans fin, plutôt qu'une virtualisation : mille lignes se dessinent sans peine, et une liste virtuelle casserait la recherche du navigateur et la sélection au clavier. 1000 par défaut.
onFollowChange(follow: boolean) => void—
onLevelsChange(levels: LogLevel[]) => void—
resumeButtonPropsPartial<Omit<ButtonProps, "children" | "onClick">>—Le bouton « Reprendre le suivi », affiché quand le suivi est en pause.
resumeLabelstring—
searchInputPropsPartial<Omit<SearchInputProps, "value" | "defaultValue" | "onValueChange">>—La recherche. Sa valeur reste celle du journal, qui filtre avec.
searchPlaceholderstring—
spinnerPropsPartial<Omit<SpinnerProps, "label">>—Les indicateurs de chargement et de flux en cours. Sans label.
streamingbooleanfalseDes lignes arrivent encore. Un indicateur discret le dit.
streamingLabelstring—
toolbarbooleantrueSans barre d'outils : ni filtre, ni recherche, ni copie.

* obligatoire.

Voir aussi ​

Publié sous licence MIT.