shiny (version 1.0.2)

showNotification: Show or remove a notification

Description

These functions show and remove notifications in a Shiny application.

Usage

showNotification(ui, action = NULL, duration = 5, closeButton = TRUE,
  id = NULL, type = c("default", "message", "warning", "error"),
  session = getDefaultReactiveDomain())

removeNotification(id = NULL, session = getDefaultReactiveDomain())

Arguments

ui
Content of message.
action
Message content that represents an action. For example, this could be a link that the user can click on. This is separate from ui so customized layouts can handle the main notification content separately from action content.
duration
Number of seconds to display the message before it disappears. Use NULL to make the message not automatically disappear.
closeButton
If TRUE, display a button which will make the notification disappear when clicked. If FALSE do not display.
id
An ID string. This can be used to change the contents of an existing message with showNotification, or to remove it with removeNotification. If not provided, one will be generated automatically. If an ID is provided and there does not currently exist a notification with that ID, a new notification will be created with that ID.
type
A string which controls the color of the notification. One of "default" (gray), "message" (blue), "warning" (yellow), or "error" (red).
session
Session object to send notification to.

Value

An ID for the notification.

Examples

Run this code
## Only run examples in interactive R sessions
if (interactive()) {
# Show a message when button is clicked
shinyApp(
  ui = fluidPage(
    actionButton("show", "Show")
  ),
  server = function(input, output) {
    observeEvent(input$show, {
      showNotification("Message text",
        action = a(href = "javascript:location.reload();", "Reload page")
      )
    })
  }
)

# App with show and remove buttons
shinyApp(
  ui = fluidPage(
    actionButton("show", "Show"),
    actionButton("remove", "Remove")
  ),
  server = function(input, output) {
    # A queue of notification IDs
    ids <- character(0)
    # A counter
    n <- 0

    observeEvent(input$show, {
      # Save the ID for removal later
      id <- showNotification(paste("Message", n), duration = NULL)
      ids <<- c(ids, id)
      n <<- n + 1
    })

    observeEvent(input$remove, {
      if (length(ids) > 0)
        removeNotification(ids[1])
      ids <<- ids[-1]
    })
  }
)
}

Run the code above in your browser using DataCamp Workspace