showHide: Manually show/hide a spinner

showHideR Documentation

Manually show/hide a spinner

Description

Any Shiny output that uses withSpinner() will automatically show a spinner while it's recalculating. Use showSpinner() and hideSpinner() to manually trigger the spinner on-demand.

Usage

showSpinner(id, expr)

hideSpinner(id)

Arguments

id

The ID of the Shiny output. The corresponding output must have been wrapped in withSpinner() in the UI.

expr

(optional) An R expression to run while showing the spinner. The spinner will automatically get hidden when this expression completes.

Value

If expr is provided, the result of expr is returned. Otherwise, NULL.

See Also

withSpinner()

Examples

if (interactive()) {
  library(shiny)

  #--- Example 1: Using showSpinner/hideSpinner ---

  shinyApp(
    ui = fluidPage(
      actionButton("show", "Show"),
      actionButton("hide", "Hide"),
      withSpinner(plotOutput("plot"))
    ),
    server = function(input, output) {
      output$plot <- renderPlot({
        plot(runif(10))
      })
      observeEvent(input$show, {
        showSpinner("plot")
      })
      observeEvent(input$hide, {
        hideSpinner("plot")
      })
    }
  )

  #--- Example 2: Using showSpinner with expr ---

  some_slow_function <- function() {
    Sys.sleep(2)
  }

  shinyApp(
    ui = fluidPage(
      actionButton("show", "Show"),
      withSpinner(plotOutput("plot"))
    ),
    server = function(input, output) {
      output$plot <- renderPlot({
        plot(runif(10))
      })
      observeEvent(input$show, {
        showSpinner("plot", { some_slow_function() })
      })
    }
  )
}

shinycssloaders documentation built on Sept. 11, 2024, 9:31 p.m.