0

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...

  1. the set of widgets now appear about halfway down the sidebar and not the top
  2. the css loader does not display when the updateSelectInput is getting the data
smackenzie
  • 2,880
  • 7
  • 46
  • 99

0 Answers0