Utilisation
Un composable pour afficher des notifications de toast dans votre application.
Utilisation
Utilisez le composable useToast auto-importé pour afficher les notifications Toast.
<script setup lang="ts">
const toast = useToast()
function showToast() {
toast.add({
title: 'New message',
description: 'You have a new message from Benjamin.',
actions: [{
icon: 'i-lucide-reply',
label: 'Reply',
color: 'neutral',
variant: 'outline',
onClick: () => {
toast.add({ title: 'Reply sent', color: 'success' })
}
}]
})
}
</script>
<template>
<UButton label="Show toast" @click="showToast" />
</template>
- Le composable
useToastutiliseuseStatede Nuxt pour gérer l'état du toast, assurant ainsi la réactivité de votre application. - Un maximum de 5 toasts sont affichés à la fois par défaut. Lorsque vous ajoutez un nouveau toast qui dépasserait cette limite, le plus ancien est automatiquement supprimé. Changez-le avec le prop
toaster.maxsur le composantApp. - Lors de la suppression d'un toast, il y a un délai de 200ms avant qu 'il ne soit effectivement retiré de l'état, ce qui permet des animations de sortie.
Assurez-vous d'envelopper votre application avec le composant
App qui utilise notre composant Toaster qui utilise le composant ToastProvider de Reka UI.Découvrez comment personnaliser l'apparence et le comportement des toasts dans la documentation du composant Toast.
api
useToast()x{lang="ts-type"}
Le composable useToast fournit des méthodes pour gérer les notifications de toast globalement.
ajouter ()
add(toast: Partial<Toast>): Toastx{lang="ts-type"}
Ajoute une nouvelle notification de toast.
Paramètres
toast
Partial<Toast> required
Un objet partiel
Toast avec les propriétés suivantes:id
string | number
Un identifiant unique pour le toast. S'il n'est pas fourni, un identifiant unique est généré. La réutilisation d'un identifiant existant se fond dans ce toast au lieu d'en ajouter un nouveau.
open
boolean
Si le toast est ouvert. Par défaut,
true.title
string | VNode | (() => VNode)
Le titre figure sur le toast.
description
string | VNode | (() => VNode)
La description affichée sur le toast.
icon
string
L'icône affichée dans le toast.
avatar
AvatarProps
Voir Avatar.
color
string
La couleur du toast. Par défaut,
primary.orientation
'horizontal' | 'vertical'
L'orientation entre le contenu et les actions. Par défaut
vertical.close
boolean | Omit<ButtonProps, LinkPropsKeys>
Personnalisez ou masquez le bouton de fermeture (avec la valeur
false). Par défaut, true.closeIcon
string
L'icône affichée dans le bouton Fermer.
actions
ButtonProps[]
Voir Button.
progress
boolean | Pick<ProgressProps, 'color' | 'ui'>
Personnaliser ou masquer la barre de progression (avec la valeur
false). Par défaut true.duration
number
Durée en millisecondes avant la fermeture automatique du pain grillé. Par défaut
5000. Défini sur 0 pour garder le pain grillé ouvert jusqu'à ce qu 'il soit fermé manuellement. Peut également être défini globalement sur le composant App.onClick
(toast: Toast) => void
Une fonction de callback est appelée lorsque le toast est cliqué.
onUpdateOpen
(open: boolean) => void
Une fonction de rappel appelée lorsque l'état ouvert du toast change. Utile pour effectuer une action lorsque le toast se ferme (expiré ou rejeté).
type
'foreground' | 'background'
Utilisez
background pour les toasts qui ne sont pas le résultat d'une action directe de l'utilisateur.as
any
L'élément ou le composant rendu par le toast est. Par défaut à
li.**Retourne: ** L'objet Toast complet qui a été ajouté.
<script setup lang="ts">
const toast = useToast()
function showToast() {
toast.add({
title: 'Success',
description: 'Your action was completed successfully.',
color: 'success'
})
}
</script>
update ()
update(id: string | number, toast: Omit<Partial<Toast>, 'id'>): voidx{lang="ts-type"}
Mise à jour d'une notification existante.
Paramètres
id
string | number required
L'identifiant unique du toast à mettre à jour.
toast
Omit<Partial<Toast>, 'id'> required
Un objet partiel
Toast avec les propriétés à mettre à jour. Le id ne peut pas être modifié, le toast est rouvert et duration est réinitialisé sauf si vous le passez à nouveau.<script setup lang="ts">
const toast = useToast()
function updateToast(id: string | number) {
toast.update(id, {
title: 'Updated Toast',
description: 'This toast has been updated.'
})
}
</script>
remove ()
remove(id: string | number): voidx{lang="ts-type"}
Supprimer une notification de toast.
Paramètres
id
string | number required
L'identifiant unique du toast à enlever.
<script setup lang="ts">
const toast = useToast()
function removeToast(id: string | number) {
toast.remove(id)
}
</script>
clear (résolu)
clear(): voidx{lang="ts-type"}
Supprime toutes les notifications de toast.
<script setup lang="ts">
const toast = useToast()
function clearAllToasts() {
toast.clear()
}
</script>
toasts
toasts: Ref<Toast[]>
Un tableau réactif contenant toutes les notifications de toast actuelles.
<script setup lang="ts">
const { toasts } = useToast()
</script>
<template>
<div>
<pre>{{ toasts }}</pre>
</div>
</template>