Nothing
#' A container for tab items
#'
#' @param ... Items to put in the container. Each item should be a
#' \code{\link{tabItem}}.
#'
#' @seealso \code{\link{menuItem}}, \code{\link{menuSubItem}},
#' \code{\link{tabItem}}. See \code{\link{sidebarMenu}} for a usage example.
#' @export
tabItems <- function(...) {
lapply(list(...), tagAssert, class = "tab-pane")
div(class = "tab-content", ...)
}
#' One tab to put inside a tab items container
#'
#' @param tabName The name of a tab. This must correspond to the \code{tabName}
#' of a \code{\link{menuItem}} or \code{\link{menuSubItem}}.
#' @param ... Contents of the tab.
#'
#' @seealso \code{\link{menuItem}}, \code{\link{menuSubItem}},
#' \code{\link{tabItems}}. See \code{\link{sidebarMenu}} for a usage example.
#' @export
tabItem <- function(tabName = NULL, ...) {
if (is.null(tabName))
stop("Need tabName")
validateTabName(tabName)
div(
role = "tabpanel",
class = "tab-pane",
id = paste0("shiny-tab-", tabName),
...
)
}
#' Change the selected tab on the client
#'
#' This function controls the active tab of \code{\link{tabItems}} from the
#' server. It behaves just like \code{\link[shiny]{updateTabsetPanel}}.
#'
#' @inheritParams shiny::updateTabsetPanel
#' @examples
#' ## Only run this example in interactive R sessions
#' if (interactive()) {
#'
#' ui <- dashboardPage(
#' dashboardHeader(title = "Simple tabs"),
#' dashboardSidebar(
#' sidebarMenu(
#' id = "tabs",
#' menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")),
#' menuItem("Widgets", tabName = "widgets", icon = icon("th"))
#' ),
#' actionButton('switchtab', 'Switch tab')
#' ),
#' dashboardBody(
#' tabItems(
#' tabItem(tabName = "dashboard",
#' h2("Dashboard tab content")
#' ),
#' tabItem(tabName = "widgets",
#' h2("Widgets tab content")
#' )
#' )
#' )
#' )
#'
#' server <- function(input, output, session) {
#' observeEvent(input$switchtab, {
#' newtab <- switch(input$tabs,
#' "dashboard" = "widgets",
#' "widgets" = "dashboard"
#' )
#' updateTabItems(session, "tabs", newtab)
#' })
#' }
#'
#' shinyApp(ui, server)
#' }
#' @export
updateTabItems <- shiny::updateTabsetPanel
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.