Resumen
Toast muestra una notificación. Tu aplicación controla cuándo aparece, su posición y cuándo se elimina.
Uso
Opciones visuales
Compare los mensajes de retroalimentación neutrales, de éxito, de error, de información y de advertencia con el mismo mensaje y progreso. Para las notificaciones de la aplicación, envuelva la aplicación enToastProvider, monte un Toaster dentro de él y use useToast() desde los descendientes. Cada proveedor posee un almacén de notificaciones independiente, cuentas regresivas y un ciclo de vida de descarte. Varios Toaster pueden reflejar el mismo proveedor.
Notificaciones de la aplicación
enqueueToast acepta props de Toast y una dedupeKey opcional, y devuelve el ID de la notificación. Una clave visible coincidente devuelve el ID existente sin añadir otra notificación. updateToast({ id, ...changes }) actualiza esa notificación activa. closeToast(id) descarta una notificación; closeToast() descarta todas las notificaciones visibles del proveedor.
El proveedor muestra de forma predeterminada tres notificaciones visibles. limit debe ser un entero positivo y puede cambiar mientras el proveedor está montado. Reducirlo o añadir por encima de él descarta primero las notificaciones visibles más antiguas. Al aumentarlo, las notificaciones existentes no cambian y no se restauran las notificaciones descartadas. Los cambios de configuración conservan el almacenamiento, los ID supervivientes, el orden y el tiempo restante de la cuenta regresiva.
Ciclo de vida del proveedor
Varios Toasters dentro de un proveedor muestran las mismas notificaciones. Las actualizaciones y los descartes se aplican a cada réplica, y cada notificación tiene una cuenta regresiva compartida. Pasar el cursor o enfocar dentro de cualquier réplica la pausa; se reanuda después de que todas las réplicas dejen de estar en ambos estados. Montar otro Toaster no reinicia la cuenta regresiva ni crea otro ciclo de vida de devolución de llamada. Use proveedores independientes para colas independientes. Para las notificaciones del proveedor, el vencimiento, el botón de cierre,closeToast y la expulsión por límite llaman al onClose más reciente una vez. La notificación ya está descartada cuando se ejecuta la devolución de llamada, por lo que las actualizaciones y las solicitudes de cierre repetidas para ese ID no tienen efecto. onCancel sigue siendo una devolución de llamada de acción independiente y no descarta automáticamente.
Las notificaciones descartadas quedan inertes durante las animaciones de salida. Sus entradas se eliminan después de que todas las réplicas mostradas terminen su trabajo de salida o se desmonten. Desmontar el último Toaster borra las entradas descartadas y congela el tiempo restante de las notificaciones visibles. Volver a montar un Toaster reanuda ese tiempo. Desmontar el proveedor descarta sus notificaciones y cancela el trabajo de cuenta regresiva y salida sin llamar a onClose. Las operaciones capturadas enqueueToast, updateToast y closeToast de ese proveedor no tienen efecto después de que se desmonte.
getToastProps adapta el contenido y la presentación de cada notificación. Establezca duration y progress en enqueueToast o updateToast para que cada réplica comparta la misma configuración de temporización. Las sobrescrituras de temporización existentes mediante getToastProps siguen siendo compatibles cuando todas las réplicas devuelven la misma duración y progreso para una notificación. El proveedor conserva el ID, el controlador de descarte y la cuenta regresiva compartida.
container selecciona el destino del portal de un Toaster. Cuando se omite, usa el contenedor del tema circundante o document.body. Un elemento explícito se muestra allí; null pospone el renderizado. Las notificaciones visibles permanecen en cola, con sus cuentas regresivas pausadas mientras no se muestra ningún Toaster. Los portales conservan el tema y la dirección circundantes. Establezca aria-label en cada Toaster para localizar el nombre de región predeterminado, “Notificaciones”, y dar nombres adecuados a las regiones replicadas.
Actualizar una notificación en tiempo real
Usa el ID devuelto porenqueueToast para actualizar el contenido, el estado de comentarios, las acciones o las devoluciones de llamada en el mismo lugar. Las actualizaciones conservan el ID y la posición de la notificación. Los ID desconocidos o descartados no tienen efecto, incluso mientras se ejecuta la animación de descarte. Cada llamada a useToast() se dirige a su proveedor más cercano.
ToastUpdate requiere id y acepta opciones parciales de Toast. Los campos omitidos conservan sus valores actuales. Un valor undefined explícito borra un campo opcional o restaura el valor predeterminado de su componente, como progress: undefined o status: undefined. Pasa null para eliminar un espacio de contenido, incluidos description, icon o action. Establecer cancelLabel: null oculta el control de cancelación mientras conserva su callback. Los cambios de callback se aplican a la notificación existente. dedupeKey pertenece a la puesta en cola y no se puede actualizar.
Tiempo hasta el cierre
La cuenta regresiva tiene un valor predeterminado de 6000 milisegundos. Se pausa mientras el puntero está sobre la notificación emergente o el foco del teclado está dentro de ella, y se reanuda solo después de que ambos se alejen. Con varios Toasters, el estado de pausa se comparte entre sus réplicas. La cuenta regresiva visual sigue el tiempo restante hasta el cierre. El cierre automático también funciona cuando el movimiento reducido desactiva la animación.
Por ejemplo,
updateToast({ id, children: 'Still saving' }) conserva el tiempo restante, mientras que updateToast({ id, duration: 6000 }) le da al lector otros seis segundos. Estas reglas se aplican a la notificación existente sin cambiar su ID ni su posición.
Notificación descartable
onClose se llama una vez mediante el botón de cierre o cuando termina la cuenta regresiva. Elimina el toast en esa devolución de llamada. Use duration={0} para una notificación que permanezca abierta hasta que se descarte.
Progreso y cancelación
progress proporciona un porcentaje y desactiva la cuenta regresiva. Elimínelo después de que finalice la operación para iniciar una nueva duración. La cancelación invoca onCancel; el elemento principal gestiona la cancelación y la eliminación. cancelLabel acepta un nodo de React para el contenido del botón. Los elementos secundarios, description, icon y action también aceptan nodos de React propiedad de quien realiza la llamada. Usa controles de Twenty para acciones interactivas y proporciona sus nombres accesibles.
Apariencia y anuncios
status acepta neutral, info, success, warning o error y tiene como valor predeterminado neutral. Expresa el significado de la retroalimentación y selecciona el icono y la paleta del tema. Toast tiene una apariencia compatible, por lo que no expone ninguna opción de variant de apariencia ni de color de paleta. Usa icon para reemplazar el icono, icon={null} para omitirlo y iconLabel cuando el icono predeterminado necesita su propio nombre accesible.
El rol predeterminado es status con anuncios no intrusivos. Usa role="alert" para comentarios urgentes. Establece cancelLabel y closeLabel para localizar los controles y permite tiempo suficiente para leer el contenido o interactuar con sus acciones.
”Props”
La referencia se genera a partir de los tipos de componentes públicos. Los atributos nativos, estilos, nombres de clase, controladores de eventos y referencias se dirigen a la raíz. Usarender para componer otro elemento o componente y conservar esas props y la referencia. Los portales de Toaster heredan el tema y la dirección del texto circundantes.
ReactNode
Optional footer node, such as a Button with a caller-owned action.
ReactNode
predeterminado:"Cancel"
Cancel button content node. Defaults to Cancel. Pass null to hide the control.
ReactNode
Main message node. Callers own its content and accessible text.
string
Additional class names merged onto the root.
string
predeterminado:"Close"
Accessible name of the close button. Defaults to Close.
ReactNode
Optional supporting content node rendered below the message.
number
predeterminado:"6000"
Milliseconds before onClose is called, defaulting to 6000. Zero keeps the toast open. Changes restart the countdown; live updateToast duration patches restart it even when unchanged. Hover and keyboard focus pause it until both leave.
ReactNode
Leading icon node. Defaults to the status icon. Pass null to omit it.
string
Accessible name of the default icon. Without it, the icon is decorative.
(() => void)
Called when the cancel button is clicked. Providing it and renderable cancelLabel content shows the button.
(() => void)
For standalone Toast, called once per mount by the close button or expiry. For provider notifications, called once on close, expiry, closeToast, or limit eviction, after dismissal and before exit cleanup. Provider teardown does not call it.
number
Completion percentage. Providing it disables the countdown. Removing it starts a fresh duration.
Ref<HTMLDivElement>
Ref to the root div, or the element supplied through render.
RenderProp<Record<string, unknown>>
Element or callback composition for the root. Native props and the ref target the rendered element.
"error" | "info" | "neutral" | "success" | "warning"
predeterminado:"neutral"
Feedback meaning: neutral, info, success, warning, or error. Defaults to neutral and selects the icon and theme palette.
CSSProperties
Inline styles forwarded to the root.
ToastProvider
ReactNode
Application content and any Toasters sharing this provider’s independent notification store and lifecycle.
number
predeterminado:"3"
Reactive maximum number of visible toasts, defaulting to three. Must be a positive integer. Lowering it or adding above it dismisses the oldest visible notifications and calls their onClose once. Surviving IDs, order, and countdowns are preserved.
Toaster
Los atributos nativos de div, los estilos, los nombres de clase y las refs se dirigen a la región de notificaciones.HTMLElement | null
Portal destination. Omit to use the theme container or document.body; null defers rendering. The provider retains visible notifications and pauses their countdowns while no Toaster is rendered.
((toast: ToastNotification) => Partial<Omit<ToastProps, "ref" | "id" | "onClose">>)
Adapts notification content and presentation. The provider owns id, dismissal, and the shared countdown. Set timing through enqueueToast or updateToast; duration and progress overrides must match across Toasters sharing a provider.
RenderProp<Record<string, unknown>>
Custom root element composed through Base UI.