Dynamically hide/show a tabPanel — showTab
v1.8.0|Source:
R/insert-tab.R
Description
Dynamically hide or show a tabPanel()
(or a
navbarMenu()
)from an existing tabsetPanel()
,
navlistPanel()
or navbarPage()
.
Arguments
- inputId
The
id
of thetabsetPanel
(ornavlistPanel
ornavbarPage
) in which to findtarget
.- target
The
value
of thetabPanel
to be hidden/shown. See Details if you want to hide/show an entirenavbarMenu
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
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)
}