Notify
Toasts non-bloquants et annonces riches — icônes auto, bornés en charge, le même appel sur chaque framework.
Toasts non-bloquants et annonces riches — icônes auto, bornés en charge, le même appel sur chaque framework.
lib.notify affiche un toast non-bloquant (feedback rapide, bas-gauche) ou une annonce
riche (persistante, haut-droite). Un seul appel, depuis le client ou le serveur, sur n'importe quel framework.
lib.notify({ type = 'success', content = 'Action terminée' })lib.notify(data) prend une seule table :
contentstringrequiredLe texte affiché. Court pour un toast ; un texte plus long et multi-lignes convient pour une annonce.
typestringoptionalCouleur d'accent — un nom sémantique ou une couleur directe (voir plus bas). Défaut default (blanc).
iconstringoptionalUn nom d'icône Lucide en kebab-case (ex. circle-check). Auto-dérivée du type sémantique si omise.
durationnumberoptionalDélai de fermeture auto en ms. Défaut 5000 (toast) / 10000 (annonce).
idnumber | stringoptionalClé de dédup. Par défaut type + content — un même toast spammé est mis à jour sur place au lieu de s'empiler, donc il ne s'accumule jamais.
Un type sémantique est recommandé — il mappe vers une couleur et une icône auto :
type | Couleur | Icône |
|---|---|---|
success | green | circle-check |
error | rose | circle-x |
warning | amber | triangle-alert |
info | blue | info |
typesuccesscircle-checktypeerrorcircle-xtypewarningtriangle-alerttypeinfoinfoOu passe n'importe quelle couleur directe de la palette (pas d'icône auto — mets icon toi-même si tu en veux une) :
orange · amber · yellow · lime · green · emerald · teal · cyan · sky · blue · indigo · violet · purple · fuchsia · pink · rose · slate · gray · zinc · neutral · stone · taupe · mauve · mist · olive
Toute valeur inconnue retombe sur default (blanc).
Les toasts restent propres en charge : 5 max à l'écran (les plus anciens s'effacent) et les toasts identiques dédupent par défaut. Ajuste le cap avec lib.config.notify.toastCap.
Mets variant = 'announcement' pour une carte riche et persistante (haut-droite) : un titre, un texte plus long, une image optionnelle et un émetteur.
lib.notify({
variant = 'announcement',
sender = { name = 'Burger Shot', color = '#e11d48' }, -- pas de logo -> initiales "BS"
title = 'Promotion -50%',
content = 'Menus à moitié prix ce soir, de 20h à minuit !',
image = 'nui://ma_resource/img/promo.png', -- optionnel
})titlestringoptionalimagestringoptionalsendertableoptional{ name, logo?, color? }. Pas de logo → initiales auto ; pas de color → azur brand.
Les annonces s'empilent haut-droite, 3 visibles et le reste en file (+N en attente). Appuie sur Suppr pour passer la plus ancienne visible. Ajuste le cap avec lib.config.notify.announceCap.
Cible un joueur, ou diffuse à tous — même forme, sur chaque framework :
-- Un joueur
lib.bridge.notify(source, { type = 'success', content = 'Achat confirmé' })
-- Tout le monde
lib.bridge.notifyAll({
variant = 'announcement',
sender = { name = 'Serveur' },
title = 'Redémarrage dans 10 minutes',
content = 'Mets-toi en lieu sûr.',
})L'event brut TriggerClientEvent('see_lib:notify', source, data) marche aussi.
-- Erreur métier (icône x auto, rose)
lib.notify({ type = 'error', content = 'Joueur introuvable' })
-- Icône custom sur une couleur directe
lib.notify({ type = 'green', icon = 'gift', content = 'Récompense quotidienne récupérée' })
-- Toast persistant unique pour cet id (mis à jour sur place)
lib.notify({ id = 'weather', type = 'info', content = 'Météo : dégagé' })Rien n'est perdu en charge. Le rendu est par client, donc le nombre de joueurs du serveur n'a aucun impact, et les notifications émises avant que le NUI soit monté (ex. restart see_lib) sont bufferisées puis flushées au montage.