In "Chaining modals" approach, when a button triggering modal is clicked quickly, consecutive modals are not being displayed.
Below a sample of code that can serve as an example.
library(shiny)
library(shinyalert)
ui <- fluidPage(
actionButton("run", "Run")
)
server <- function(input, output, session) {
observeEvent(input$run, {
shinyalert(
title = "Do you accept element A?",
showCancelButton = TRUE,
callbackR = function(value) {
ifelse(value == TRUE,
shinyalert(title = "Do you accept element B?",
showCancelButton = TRUE,
callbackR = function(value) {
ifelse(value == TRUE, shinyalert(title = "Do you accept element C?",
showCancelButton = TRUE,
callbackR = function(value) {
ifelse(value == TRUE, shinyalert(title = "Do you accept element D?",
showCancelButton = TRUE, callbackR = function(value) {
ifelse(value == TRUE,
shinyalert(title = "Do you accept element E?",
showCancelButton = TRUE), decision <<- "STOP")}), decision <<- "STOP")}), decision <<- "STOP")}), decision <<- "STOP")}
)
})
}
shinyApp(ui = ui, server = server)
In "Chaining modals" approach, when a button triggering modal is clicked quickly, consecutive modals are not being displayed. Below a sample of code that can serve as an example.