Persistent selected values using modal selectInput


#1

I would like to create use a select input inside a modal dialog box. The problem I encountered is that the selected values are cleared each time the modal dialog opened. In other words the selected values do not persist when using selectInput inside a modal dialog box. To solve this problem I made the select input a reactive expression that depends on it's own reactive value. This works but I'm worried about creating a loop in the graph of dependencies. I'm just looking for some feedback from a more experienced Shiny programmer. Is this OK? Is there a better approach?

Thanks!

library(shiny)

ui <- fluidPage(
     actionButton("button", "Button"),
     verbatimTextOutput("selected")
     )

server <- function(input, output) {
     my_input <- reactive(selectInput("letters", "letters", selected = input$letters, choices = letters, multiple = T))
     
     observeEvent(input$button, {
               showModal(modalDialog(my_input()))
              })

     output$selected <- renderPrint(input$letters)
}

shinyApp(ui = ui, server = server)