Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide sidebar in default in shinydashboard

I used shinydashboard to create my app. I would like to hide the sidedar in default on desktop environment (e.g. windows), but not to disable it. On the mobile device, the sidebar is hide in default. I think I need to change the css class, but don't know how to do it.

Thanks for any suggestions.

This is my playing codes:

library(shiny)

library(shinydashboard)
ui <- shinyUI(dashboardPage(
    dashboardHeader(),
    dashboardSidebar(),
    dashboardBody()
))

server <- shinyServer(function(input, output, session) {
})

shinyApp(ui = ui, server = server)
like image 866
Bangyou Avatar asked Feb 03 '16 06:02

Bangyou


2 Answers

if you do a ?dashboardSidebar you probably see the usage, like this

dashboardSidebar(..., disable = FALSE, width = NULL, collapsed = FALSE)

So this should work

sidebar <- dashboardSidebar(
  collapsed = TRUE,
  sidebarMenu()
)

i'm not sure if this depends on your shinydashboard version but you could check/change that as well.

like image 99
Willem Bressers Avatar answered Nov 19 '22 20:11

Willem Bressers


This is very similar to my answer from another SO thread: "disabling/enabling sidebar from server side"

Here's code that can do what you want by hiding the sidebar when the app starts (using the package shinyjs)

library(shiny)
library(shinydashboard)
library(shinyjs)

ui <- shinyUI(dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    useShinyjs()
  )
))

server <- shinyServer(function(input, output, session) {
  addClass(selector = "body", class = "sidebar-collapse")
})

shinyApp(ui = ui, server = server)
like image 22
DeanAttali Avatar answered Nov 19 '22 20:11

DeanAttali