R/update_layerSelectInput.R

Defines functions update_layerSelectInput

update_layerSelectInput <- function(session, buttons, tabPanelName, layers, input) {

  layerSet <- input[[paste0(tabPanelName, "layerSet")]]
  if(layerSet > buttons["layerSet"]) {

    newLayerLabel <- shiny::isolate(input[[paste0(tabPanelName, "newLayerLabel")]])

    if(newLayerLabel != "") {

      layersName <- names(layers)
      currentLayerName <- input[[paste0(tabPanelName, "layer")]]

      layersName[which(layersName == currentLayerName)] <- newLayerLabel

      shiny::updateSelectInput(
        session,
        inputId = paste0(tabPanelName, "layer"),
        label = NULL,
        choices = layersName,
        selected = newLayerLabel
      )
    }
  }

  layerMinus <- input[[paste0(tabPanelName, "layerMinus")]]
  if(layerMinus > buttons["layerMinus"]) {

    layersName <- names(layers)
    currentLayerName <- input[[paste0(tabPanelName, "layer")]]
    newLayersName <- setdiff(layersName, currentLayerName)

    shiny::updateSelectInput(
      session,
      inputId = paste0(tabPanelName, "layer"),
      choices = newLayersName
    )
  }
}

Try the loon.shiny package in your browser

Any scripts or data that you put into this service are public.

loon.shiny documentation built on Oct. 8, 2022, 5:05 p.m.