R: Dynamically hide/show a tabPanel

showTab {shiny} | R Documentation

## Dynamically hide/show a tabPanel

### Description

Dynamically hide or show a `tabPanel` (or a `navbarMenu`)from an existing `tabsetPanel`, `navlistPanel` or `navbarPage`.

### Usage

    showTab(inputId, target, select = FALSE,
      session = getDefaultReactiveDomain())

    hideTab(inputId, target, session = getDefaultReactiveDomain())

### Arguments

`inputId` | The `id` of the `tabsetPanel` (or `navlistPanel` or `navbarPage`) in which to find `target`.
`target` | The `value` of the `tabPanel` to be hidden/shown. See Details if you want to hide/show an entire `navbarMenu` instead.
`select` | Should `target` be selected upon being shown?
`session` | The shiny session within which to call this function.

### Details

For `navbarPage`, you can hide/show conventional `tabPanel`s (whether at the top level or nested inside a `navbarMenu`), as well as an entire `navbarMenu`. For the latter case, `target` should be the `menuName` that you gave your `navbarMenu` when you first created it (by default, this is equal to the value of the `title` argument).

### See Also

`insertTab`

### Examples

    ## Only run this example in interactive R sessions
    if (interactive()) {

    ui <- navbarPage("Navbar page", id = "tabs",
      tabPanel("Home",
        actionButton("hideTab", "Hide 'Foo' tab"),
        actionButton("showTab", "Show 'Foo' tab"),
        actionButton("hideMenu", "Hide 'More' navbarMenu"),
        actionButton("showMenu", "Show 'More' navbarMenu")
      ),
      tabPanel("Foo", "This is the foo tab"),
      tabPanel("Bar", "This is the bar tab"),
      navbarMenu("More",
        tabPanel("Table", "Table page"),
        tabPanel("About", "About page"),
        "------",
        "Even more!",
        tabPanel("Email", "Email page")
      )
    )

    server <- function(input, output, session) {
      observeEvent(input$hideTab, {
        hideTab(inputId = "tabs", target = "Foo")
      })

      observeEvent(input$showTab, {
        showTab(inputId = "tabs", target = "Foo")
      })

      observeEvent(input$hideMenu, {
        hideTab(inputId = "tabs", target = "More")
      })

      observeEvent(input$showMenu, {
        showTab(inputId = "tabs", target = "More")
      })
    }

    shinyApp(ui, server)
    }

[Package shiny version 1.2.0 Index]