How to show Spinning Wheel or Busy Icon while waiting in Shiny

Danish Zahid Malik picture Danish Zahid Malik · Mar 26, 2018 · Viewed 13.2k times · Source

Hey i've just started working with R and Shiny. Trying to make a dashboard which displays different charts. As there is a lot of data to process, the plots or charts take some time to display after the action button is clicked i.e. "launch Campaign' Is there anyway i could show a spinning wheel or a loading icon in the white blank space, while this delay takes place? Dashboard with blank space on the right

Answer

Pork Chop picture Pork Chop · Mar 26, 2018

There is wonderful shinycssloaders package https://github.com/andrewsali/shinycssloaders which does what you want:

library(shiny)
library(dplyr)
library(shinycssloaders)

ui <- fluidPage(

  actionButton("plot","plot"),
  plotOutput("Test") %>% withSpinner(color="#0dc5c1")
)



server <- function(input, output, session) {


  data <- eventReactive(input$plot,{
    rnorm(1:100000)
  })

  output$Test <- renderPlot({
    plot(data())
  })
}

shinyApp(ui = ui, server = server)

enter image description here