rstudio / shinydashboard

Shiny Dashboarding framework

Home Page:https://rstudio.github.io/shinydashboard/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature request: allow NULL menu items in the UI

daattali opened this issue · comments

This comes up when you want to include a conditional.

For example

library(shiny)
library(shinydashboard)

show_tab_2 <- FALSE

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarMenu(
      menuItem("tab1", tabName = "tab1"),
      if (show_tab_2) menuItem("tab2", tabName = "tab2")
    )
  ),
  dashboardBody(
    tabItems(
      tabItem("tab1", "tab1"),
      if (show_tab_2) tabItem("tab2", "tab2")
    )
  )
)
server <- function(input, output) {}
shinyApp(ui, server)

This results in an error since the if statement results in a NULL ui item. It would be useful if shinydashboard knew to just ignore NULL items

The problems seems to be with the tabItems() rather than sidebarMenu()

This would be useful!

For those interested in a workaround:

library(shiny)
library(shinydashboard)

show_tab_2 <- FALSE

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarMenu(
      menuItem("tab1", tabName = "tab1"),
      if (show_tab_2){menuItem("tab2", tabName = "tab2")}
    )
  ),
  dashboardBody(
    tabItems(
      tabItem("tab1", "tab1"),
      if (show_tab_2){tabItem("tab2", "tab2")} else {
        div(class = 'tab-pane')
      }
    )
  )
)
server <- function(input, output) {}
shinyApp(ui, server)