if(interactive()){
library(shiny)
library(toro)
ui <- fluidPage(
tagList(
fluidRow(
column(6, mapOutput("map_one")),
column(6, mapOutput("map_two"))
),
actionButton("remove_control", "Remove control")
)
)
server <- function(input, output, session) {
output$map_one <- renderMap({
map() |>
add_custom_control(
id = "custom_control",
html = "I am a custom control"
)
})
output$map_two <- renderMap({
map() |>
add_control_panel(panel_id = "my_panel", title = "Map Settings") |>
add_custom_control(
id = "custom_control",
html = "I am a custom control",
panel_id = "my_panel"
)
})
observe({
req(input$map_one_loaded, input$map_two_loaded)
mapProxy("map_one") |>
remove_custom_control("custom_control")
mapProxy("map_two") |>
remove_custom_control("custom_control", panel_id = "my_panel")
}) |>
bindEvent(input$remove_control)
}
}
Run the code above in your browser using DataLab