简体   繁体   中英

remove toggle gear icon controlbar

I'm trying to customize how my R shiny app looks like and playing around with various elements on the page.

Just wondering how do I remove this toggle icon from the header? I've tried something like this but it doesn't work:

shinyjs::runjs("document.getElementsByClassName('skin-blue sidebar-mini')[0].style.visibility = 'hidden';")

在此处输入图像描述

reproducible example:

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)
library(DT)

ui <- shinydashboardPlus::dashboardPage(
  options = list(sidebarExpandOnHover = TRUE),
   header = dashboardHeader(
    tags$li(
      id = 'right-sidebar-toggle-list-item',
      class = "dropdown",
      actionLink("rightSidebarToggle", "Select Population"))
    
  ),
  shinydashboardPlus::dashboardSidebar( disable = TRUE ,
                                        sidebarMenu(
                                          selectInput(
                                            "countries", label = "Select Countries",
                                            choices = c("B", "C", "A"), selected = "A",
                                            multiple = TRUE
                                          ))
  ),# minified = TRUE, collapsed = F),
  controlbar = shinydashboardPlus::dashboardControlbar(id = "controlbar", collapsed = F, 
                                                       skin = "dark",
                                                       controlbarMenu(
                                                         id = "menu",
                                                         controlbarItem(
                                                           "Tab 1",
                                                           "Welcome to tab 1"
                                                         ),
                                                         controlbarItem(
                                                           "Tab 2",
                                                           "Welcome to tab 2"
                                                         )
                                                       )
  ),
  
  shinydashboard::dashboardBody(
    useShinyjs(),
    tabsetPanel( id="tabset",
                 tabPanel("Resource Allocation", value="tab1", plotOutput("plot")),
    )
  ),
  # controlbar = dashboardControlbar(collapsed = F),
  title = "DashboardPage"
)
server <- function(input, output) {
  output$plot <- renderPlot(plot(cars))
  
}

shinyApp(ui, server)

We can use some JS via tags$script to hide the icon:

library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(shinyjs)
library(DT)

ui <- shinydashboardPlus::dashboardPage(
  options = list(sidebarExpandOnHover = TRUE),
  shinydashboardPlus::dashboardHeader(
    tags$li(
      id = 'right-sidebar-toggle-list-item',
      class = "dropdown",
      actionLink("rightSidebarToggle", "Select Population"))
    
  ),
  shinydashboardPlus::dashboardSidebar(disable = TRUE ,
                                       sidebarMenu(
                                         selectInput(
                                           "countries",
                                           label = "Select Countries",
                                           choices = c("B", "C", "A"),
                                           selected = "A",
                                           multiple = TRUE
                                         )
                                       )),
  # minified = TRUE, collapsed = F),
  controlbar = shinydashboardPlus::dashboardControlbar(
    id = "controlbar",
    collapsed = F,
    skin = "dark",
    controlbarMenu(
      id = "menu",
      controlbarItem("Tab 1",
                     "Welcome to tab 1"),
      controlbarItem("Tab 2",
                     "Welcome to tab 2")
    )
  ),
  shinydashboard::dashboardBody(
    useShinyjs(),
    # hide icon
    # tags$script(
    #   HTML(
    #     'var e = document.querySelector("body > div.wrapper > header > nav > div:nth-child(4) > ul > li > a > i");
    #        e.setAttribute("style", "display: none;");'
    #   )
    # ),
    # hide hyperlink
    tags$script(HTML('var e = document.querySelector("body > div.wrapper > header > nav > div:nth-child(4) > ul > li:last-child > a");
                      e.setAttribute("style", "display: none;");')),
    tabsetPanel(
      id = "tabset",
      tabPanel("Resource Allocation", value = "tab1", plotOutput("plot")),
    )
  ),
  # controlbar = dashboardControlbar(collapsed = F),
  title = "DashboardPage"
)

server <- function(input, output) {
  output$plot <- renderPlot(plot(cars))
}

shinyApp(ui, server)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM