30

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

Danish Zahid Malik
  • 541
  • 2
  • 7
  • 19
  • 2
    Have you looked into here: https://shiny.rstudio.com/gallery/progress-bar-example.html ? – Tonio Liebrand Mar 26 '18 at 09:38
  • This has been already covered here: https://stackoverflow.com/questions/26004302/shiny-app-busy-indicator Basically you are looking for conditionalPanel in the first approximation. – PSzczesny Mar 26 '18 at 09:42
  • 1
    Possible duplicate of [shiny app busy indicator](https://stackoverflow.com/questions/26004302/shiny-app-busy-indicator) – PSzczesny Mar 26 '18 at 09:42

1 Answers1

66

There is wonderful shinycssloaders package https://github.com/andrewsali/shinycssloaders, now maintained here https://github.com/daattali/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

Pork Chop
  • 28,528
  • 5
  • 63
  • 77