% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/plugin-notification.R
\name{notify_user}
\alias{notify_user}
\alias{notify_user_server}
\alias{notify_user_ui}
\title{User notification plugin module}
\usage{
notify_user(server = notify_user_server, ui = notify_user_ui)

notify_user_server(id, board, ...)

notify_user_ui(id, board)
}
\arguments{
\item{server, ui}{Server/UI for the plugin module}

\item{id}{Namespace ID}

\item{board}{Reactive values object}

\item{...}{Extra arguments passed from parent scope}
}
\value{
A plugin container inheriting from \code{notify_user} is returned by
\code{notify_user()} and the UI component (e.g. \code{notify_user_ui()}) is expected
to return shiny UI (i.e. \code{\link[shiny:tagList]{shiny::tagList()}}). The server component (i.e.
\code{notify_user_server()}) is called for the side effect of managing
notifications and returns \code{NULL}.
}
\description{
During the evaluation cycle of each block, conditions (errors, warnings and
messages) may be raised. The default \code{notify_user} plugin surfaces these to
the user as \code{\link[shiny:showNotification]{shiny::showNotification()}} toasts, displaying newly active
conditions and clearing ones that are no longer active via
\code{\link[shiny:removeNotification]{shiny::removeNotification()}}. Each block's conditions (see \code{\link[=board_server]{board_server()}})
are tracked individually, so that a single block's change touches only its
own notifications rather than re-processing the whole board.
}
