tabsetPanel | R Documentation |
Imported by bs4TabCard but can be used alone. This is a modified shiny::tabsetPanel, to handle bootstrap 4. This function will be upgraded starting from shiny 1.7.0 (support Bootstrap 4 tabs).
tabsetPanel( ..., id = NULL, selected = NULL, type = c("tabs", "pills", "hidden"), vertical = FALSE, side = "left", .list = NULL )
... |
|
id |
If provided, you can use |
selected |
The |
type |
|
vertical |
Whether to displays tabs vertically. Default to FALSE. |
side |
Tabs side: |
.list |
In case of programmatically generated items. See example. |
David Granjon, dgranjon@ymail.com
if(interactive()){ library(shiny) library(bs4Dash) shinyApp( ui = dashboardPage( header = dashboardHeader(), sidebar = dashboardSidebar(), controlbar = dashboardControlbar(), footer = dashboardFooter(), title = "Bootstrap 4 tabsetPanel", body = dashboardBody( # manually inserted panels tabsetPanel( id = "tabcard", tabPanel( title = "Tab 1", "Content 1" ), tabPanel( title = "Tab 2", "Content 2" ), tabPanel( title = "Tab 3", "Content 3" ) ), br(), br(), # programmatically inserted panels tabsetPanel( id = "tabset", .list = lapply(1:3, function(i) { tabPanel( title = paste0("Tab", i), active = FALSE, paste("Content", i) ) }) ) ) ), server = function(input, output) {} ) # update tabsetPanel shinyApp( ui = dashboardPage( title = "updateTabsetPanel", header = dashboardHeader(), body = dashboardBody( tabsetPanel( id = "tabset1", selected = "Tab 2", tabPanel( title = "Tab 1", numericInput("val", "Value:", 10, min = 1, max = 100), verbatimTextOutput("value") ), tabPanel( title = "Tab 2", "Content 2" ), tabPanel( title = "Tab 3", checkboxGroupInput( inline = TRUE, "variable", "Variables to show:", c("Cylinders" = "cyl", "Transmission" = "am", "Gears" = "gear") ), tableOutput("data") ) ), uiOutput("tabSetPanel2") ), sidebar = dashboardSidebar( skin = "light", sliderInput( inputId = "controller", label = "Update the first tabset", min = 1, max = 3, value = 2 ), br(), sliderInput( inputId = "controller2", label = "Update the second tabset", min = 1, max = 3, value = 3 ) ), controlbar = dashboardControlbar(collapsed = FALSE), footer = dashboardFooter() ), server = function(input, output, session) { output$tabSetPanel2 <- renderUI({ tabsetPanel( id = "tabset2", tabPanel( title = "Tab 1", p("Tab 1 ") ), tabPanel( title = "Tab 2", p("Tab 2") ), tabPanel( title = "Tab 3", p("Tab 3") ) ) }) # update tabset1 observeEvent(input$controller, { updateTabsetPanel( session, inputId = "tabset1", selected = paste("Tab", input$controller) ) }, ignoreInit = TRUE) # update tabset 2 observeEvent(input$controller2, { updateTabsetPanel( session, inputId = "tabset2", selected = paste("Tab", input$controller2) ) }, ignoreInit = TRUE) output$distPlot <- renderPlot({ hist(rnorm(input$obs)) }) output$data <- renderTable({ mtcars[, c("mpg", input$variable), drop = FALSE] }, rownames = TRUE) output$txt <- renderText({ paste("You chose", input$rb) }) output$value <- renderText({ input$val }) } ) }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.