Aller au contenu

busy

Pour une application qui recharge des lignes qu’elle garde à l’écran — une relève chaque minute, son propre bouton d’actualisation.

Typeboolean
Par défautfalse
Modifiable en direct (update())Oui
Angularl’entrée [busy]
<dz-grid>l’attribut busy
Déclaré danspackages/dom/src/settings.ts

true : la grille porte aria-busy="true" aussitôt, et après 200 ms montre une fine barre sous l’en-tête ; une fois montrée, la barre reste au moins 400 ms, pour qu’un rechargement rapide ne clignote pas. Les lignes restent lisibles et utilisables. Rien n’est annoncé : un lecteur n’est pas interrompu pour une actualisation. false y met fin.

Les lignes d’un serveur (source) le font d’elles-mêmes quand une requête part avec des lignes gardées à l’écran ; busy sert aux lignes que vous donnez. La barre ne se montre jamais avec le message « Chargement… » d’overlay. Sous motion: false ou des animations réduites, la barre est immobile ; une partie peut dessiner la vôtre à la place (slots()).

import { createGrid } from '@dzgrid/dom';
import { FR } from '@dzgrid/dom/locales/fr';
type Train = { id: string; line: string; delay: number };
const grid = createGrid<Train>(document.getElementById('trains-du-jour')!, {
rows: [{ id: 't1', line: 'Ligne de la côte', delay: 4 }],
columns: [{ id: 'line', header: 'Ligne' }, { id: 'delay', header: 'Retard (min)', type: 'number' }],
getRowId: (t) => t.id,
messages: FR,
});
setInterval(async () => {
grid.update({ busy: true });
const rows = (await (await fetch('/api/trains')).json()) as Train[];
grid.update({ rows, busy: false });
}, 60_000);

busy: true — les lignes restent, une fine barre sous l’en-tête dit qu’elles se rechargent.