# Busy indicator for shiny apps

library(shinybusy)

{shinybusy} allow to add global indicators to a {shiny} application to show the user that application is busy (something is happening server-side). There is three main type of indicators :

• automatic, just add a line in UI, the indicator will show up whenever server is busy.
• manual, activate the indicator from the server when you want it to be displayed.
• modal indicators, display a modal and prevent user to interact with the application.

## Automatic indicators

The indicator will be displayed each time a calculation take more than the timeout defined (default to 1000ms), you don’t have to intervene in the server.

Three indicators are available :

• a spinner : with add_busy_spinner().
# Add in UI
add_busy_spinner(spin = "fading-circle")

• a top progress bar : with add_busy_bar().
add_busy_bar(color = "red", height = "8px")

• a GIF that will animate when app is busy : with : add_busy_gif().
# Add in UI
src = "https://jeroen.github.io/images/banana.gif",
height = 70, width = 70
)

## Manual indicators

The same types of indicators are available than for automatic indicators, but this time functions starts with use_* and you have to explicitly trigger the indicator server-side.

• spinner : with use_busy_spinner() :
# in UI

# in server
show_spinner() # show the spinner
hide_spinner() # hide the spinner
• top progress bar : with use_busy_bar() :
# in UI
use_busy_bar(color = "#01DF01", height = "15px")

# in server
update_busy_bar(0) # update with the desire value [0-100], 100 hide the bar
• GIF : with use_busy_gif() :
# in UI
use_busy_gif(
src = "https://jeroen.github.io/images/banana.gif",
height = 70, width = 70
)

# in server
play_gif() # play animation
stop_gif() # stop animation

# success notification
)