I want to add functionality that gives the user feedback once they click downloadButton
in my shiny app (e.g., it gives the user an alert message or toggles ui elements once clicked). Essentially, I want to be able to have downloadButton
download some data and behave like actionButton
, so that it responds to event triggers. Is this possible? This is how I have my code set up:
ui <- fluidPage(
useShinyjs(),
downloadButton("download", "Download some data")
)
server <- function(input, output, session) {
observeEvent(input$download, { # supposed to alert user when button is clicked
shinyjs::alert("File downloaded!") # this doesn't work
})
output$download <- downloadHandler( # downloads data
filename = function() {
paste(input$dataset, ".csv", sep = "")
},
content = function(file) {
write.csv(mtcars, file, row.names = FALSE)
}
)
}
shinyApp(ui = ui, server = server)
This only seems to work if I change downloadButton
to an actionButton
element in the ui, but doing this disables the download output.
observeEvent
. However I was able to get it working by nestingrv$download_flag
within an if statement in thedownloadHandler
– Noon