I want to hide a selectInput so it doesnt let people try and use it before the data has loaded.
Snippet of UI code.
ui <-  dashboardPage(
  dashboardHeader(title = "TCS Adverse Event Search Tool"),
  
  dashboardSidebar(
    sidebarMenu(
      shinycssloaders::withSpinner(
        selectInput("ingredients", 
                  label = "Select one or more Active Ingredients:", 
                  choices = NULL, 
                  multi=TRUE)
        ),
  
In my server function I have this:
server <- function(input, output, session) {
  
  # get main data frame
  ingredients_df <- reactive({
    ingredients_df <- read.csv(file="/projects/other/pv_compliance/active_ingredients.csv")
    print(paste(nrow(ingredients_df)," active ingredient rows returned"))
    return(ingredients_df)
  })
  
  
  cases_df <- reactive({
    cases_df <- read.csv(file="/projects/other/pv_compliance/adverse_events.csv")
    print(paste(nrow(cases_df)," case rows returned"))
    return(cases_df)
  })
  
  
  
  observeEvent(ingredients_df(), {
    updateSelectInput(session, 
                      "ingredients",
                      choices = ingredients_df()$PRIMARY_SUSPECT_KEY_INGREDIENT,
                      selected = NULL 
    )
  })
  
Two things are happening...
- the set of widgets now appear about halfway down the sidebar and not the top
 - the css loader does not display when the updateSelectInput is getting the data