Modules → bpm.notification

bpm.notification

Historique des notifications, cloche dans le header, niveaux 1 (haute) à 3 (basse). Le niveau minimal affiché est configurable dans Paramètres → Général.

Module⏱ 1 min

Simulateur (tester les notifications)

À propos

La cloche affiche les notifications récentes (stockées dans le navigateur). Chaque notification a un niveau 1, 2 ou 3 ; le filtre dans Paramètres → Général permet de n'afficher que les niveaux suffisamment prioritaires.

Comment implanter le module

Le module repose sur un contexte React et une cloche dans le header déjà intégrée au layout. À faire dans votre app :

  • Envelopper l'arbre de l'app avec NotificationHistoryProvider (ou utiliser NotificationProviders qui inclut aussi le toast).
  • Dans tout composant enfant, utiliser useNotificationHistory() pour obtenir addNotification.
  • Appeler addNotification({ message, type?, title?, pageName? }). Le niveau (1–3) est déduit automatiquement via getNotificationLevel si vous ne le fournissez pas.

Fichiers principaux : contexts/NotificationHistoryContext.tsx, lib/notificationLevels.ts, components/NotificationBell.tsx.

import { useNotificationHistory } from "@/contexts/NotificationHistoryContext";
import { getNotificationLevel } from "@/lib/notificationLevels";

function MyComponent() {
  const { addNotification } = useNotificationHistory();

  const handleSave = () => {
    addNotification({
      message: "Enregistrement réussi.",
      type: "success",
      title: "Sauvegarde",
      pageName: "Mon écran",
    });
    // Niveau déduit automatiquement (ex. 2 pour success)
  };

  const handleError = () => {
    const payload = { message: "Échec.", type: "error" as const, title: "Erreur", pageName: null };
    addNotification({ ...payload, level: getNotificationLevel(payload) });
  };

  return <button onClick={handleSave}>Sauvegarder</button>;
}

Niveaux

  • Niveau 1 — Haute priorité (ex. erreurs)
  • Niveau 2 — Moyenne (ex. succès, avertissements)
  • Niveau 3 — Basse (ex. info, paramètres sauvegardés)