usando janela modal no módulo Shiny
Eu quero usar uma janela modal dentro de um módulo brilhante. O usuário interage com a janela modal, o módulo processa a entrada do usuário.
Neste exemplo mínimo, o módulo deve remover o modal quando o usuário clicar no botão "fechar modal":
library(shiny)
# Modal module UI
modalModuleUI <- function(id) {
ns <- NS(id)
actionButton(ns("openModalBtn"), "Open Modal")
}
# Modal module server
modalModule <- function(input, output, session) {
myModal <- function() {
modalDialog(
action,Button("closeModalBtn", "Close Modal")
)
}
# Show modal dialog on start up
observeEvent(input$openModalBtn,
ignoreNULL = FALSE,
showModal(myModal())
)
# close modal on button click (not working)
observeEvent(input$closeModalBtn, {
removeModal()
})
}
# Main app UI
ui <- fluidPage(modalModuleUI("foo"))
# Main app server
server <- function(input, output, session) {
callModule(modalModule, "foo")
}
shinyApp(ui, server)
No entanto, clicar no botão "fechar modal" não aciona oobserveEvent()
na função de servidor do módulo. Não consigo descobrir como acessar (ou seja, observar) o conteúdo da janela modal no módulo. Eu acho que é uma questão de espaço para nome.
Editar: Oexemplo interativo agora funciona. Veja minha resposta abaixo.