if (interactive()) {
# Insert after
library(shiny)
library(shinyMobile)
shinyApp(
ui = f7Page(
title = "Insert a tab Before the target",
f7TabLayout(
navbar = f7Navbar(
title = "insertF7Tab",
hairline = FALSE,
shadow = TRUE,
leftPanel = TRUE,
rightPanel = TRUE
),
f7Tabs(
animated = TRUE,
id = "tabs",
f7Tab(
tabName = "Tab1",
icon = f7Icon("airplane"),
active = TRUE,
"Tab 1",
f7Button(inputId = "add", label = "Add tabs")
),
f7Tab(
tabName = "Tab2",
icon = f7Icon("today"),
active = FALSE,
f7Button(inputId="stay", label = "Stay"),
"Tab 2"
)
)
)
),
server = function(input, output, session) {
observeEvent(input$stay, {
f7Toast("Please stay")
})
observeEvent(input$add, {
insertF7Tab(
id = "tabs",
position = "after",
target = "Tab1",
tab = f7Tab (
# Use multiple elements to test for accessor function
f7Text(inputId = "my_text", label ="Enter something", placeholder = "What?"),
f7Text(inputId = "my_other", label ="Else:", placeholder = "Else ?"),
tabName = paste0("tabx_", input$go),
"Test2",
icon = f7Icon("app_badge")
),
select = TRUE
)
})
}
)
# Insert in an empty tabsetpanel
library(shiny)
ui <- f7Page(
f7SingleLayout(
navbar = f7Navbar(),
f7Button("add", "Add 'Dynamic' tab"),
br(),
f7Tabs(id = "tabs"),
)
)
server <- function(input, output, session) {
observeEvent(input$add, {
insertF7Tab(
id = "tabs",
f7Tab(title = "Dynamic", tabName = "Dynamic", "This a dynamically-added tab"),
target = NULL
)
})
}
shinyApp(ui, server)
}
Run the code above in your browser using DataLab