I've created several Shiny apps with a navbarPage containing several tabPanels using bslib theme. However, Shiny 1.7 creates problems when run on ShinyServerPro/Linux: the app won't switch tabPanels. Works fine on Windows and works fine on the ShinyServer with Shiny 1.6. All installations are running R 4.1.1.
Here's a reprex.
library(shiny)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(bslib)
#>
#> Attaching package: 'bslib'
#> The following object is masked from 'package:utils':
#>
#> page
ui <- navbarPage("Shiny App", id = 'pg', selected = 'Panel1',
theme = bs_theme(version = 4, bootswatch = 'slate', bg = "#3D4753", fg = "#CCD1D5", # '#A9B4BC'
base_font = font_google("Fira Sans"), heading_font = "PTSerif"),
tabPanel("Panel1",
sidebarLayout(
sidebarPanel(
dateInput("date1", "One's Date:"),
div(style="display:inline-block; padding-right: 10px;", actionButton(inputId = "Ago", label = "Run")),
HTML('<p> </p>'),
actionButton(inputId = 'stop1', label = 'Exit'),
width = 3
),
mainPanel(
h3('One'),
HTML('<p> </p>'),
HTML('<p><b>Some Content of Interest</b></p>'),
)
)),
tabPanel("Panel2",
sidebarLayout(
sidebarPanel(
dateInput("date2", "Two's Date:"),
div(style="display:inline-block; padding-right: 10px;", actionButton(inputId = "Fgo", label = "Run")),
HTML('<p> </p>'),
actionButton(inputId = 'stop2', label = 'Exit'),
width = 3
),
mainPanel(h3('Two'),
HTML('<p> </p>'),
HTML('<p><b>Some Content of Interest</b></p>'),
))),
tabPanel("Panel3",
sidebarLayout(
sidebarPanel(
dateInput("date3", "Three's Date:"),
div(style="display:inline-block; padding-right: 10px;", actionButton(inputId = "Rgo", label = "Run")),
HTML('<p> </p>'),
actionButton(inputId = 'stop3', label = 'Exit'),
width = 3
),
mainPanel(h3('Three'),
HTML('<p> </p>'),
HTML('<p><b>Some Content of Interest</b></p>'),
)
))
)
server <- function(input, output, session) {
observeEvent({c(input$stop1, input$stop2, input$stop3)}, {stopApp()}, ignoreInit = T)
observeEvent(input$Ago,{
foo <- devtools::session_info()
foo2 <- foo$packages %>% as_tibble()
cat(file=stderr(), foo2 %>% filter(attached) %>% mutate(load = paste0(package, '\t', loadedversion, collapse = '\n')) %>%
select(load) %>% distinct() %>% pull())})
}
Created on 2021-11-10 by the reprex package (v2.0.1)