mirror of
https://github.com/IliesAllali/parenthese.git
synced 2026-11-10 07:52:13 +00:00
Pendant une attente, le rond se divise en trois points qui respirent, puis se referme avec un léger rebond quand c'est prêt. - App : écran de démarrage (BootLoader, visible seulement au-delà de 400 ms, au moins 900 ms pour ne pas clignoter), remplace « Chargement de l'arbre généalogique... ». - App : les boutons en attente (Création…, Envoi…, Un instant…) montrent trois points à la place du libellé, largeur figée, texte gardé pour les lecteurs d'écran (PzBusy). - Landing : chargement de la démo intégrée. - Réduire les animations : points sur place, fondu seul. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
21 lines
513 B
JavaScript
21 lines
513 B
JavaScript
import { useSyncExternalStore } from 'react'
|
|
|
|
// App signale ici si l'arbre charge encore ; BootLoader, monté à côté d'App, l'écoute.
|
|
let booting = true
|
|
const listeners = new Set()
|
|
|
|
export function setBooting(value) {
|
|
if (value === booting) return
|
|
booting = value
|
|
listeners.forEach((listener) => listener())
|
|
}
|
|
|
|
function subscribe(listener) {
|
|
listeners.add(listener)
|
|
return () => listeners.delete(listener)
|
|
}
|
|
|
|
export function useBooting() {
|
|
return useSyncExternalStore(subscribe, () => booting)
|
|
}
|