A dashboardSidebar
can contain a sidebarMenu
. A
sidebarMenu
contains menuItem
s, and they can in turn contain
menuSubItem
s.
sidebarMenu(..., id = NULL, .list = NULL)menuItem(text, ..., icon = NULL, badgeLabel = NULL, badgeColor = "green",
tabName = NULL, href = NULL, newtab = TRUE, selected = NULL,
expandedName = as.character(gsub("[[:space:]]", "", text)),
startExpanded = FALSE)
menuSubItem(text, tabName = NULL, href = NULL, newtab = TRUE,
icon = shiny::icon("angle-double-right"), selected = NULL)
For menu items, this may consist of menuSubItem
s.
For sidebarMenu
, if id
is present, this id will be
used for a Shiny input value, and it will report which tab is selected. For
example, if id="tabs"
, then input$tabs
will be the
tabName
of the currently-selected tab. If you want to be able to
bookmark and restore the selected tab, an id
is required.
An optional list containing items to put in the menu Same as the
...
arguments, but in list format. This can be useful when working
with programmatically generated items.
Text to show for the menu item.
An icon tag, created by icon
. If
NULL
, don't display an icon.
A label for an optional badge. Usually a number or a short word like "new".
A color for the badge. Valid colors are listed in validColors.
The name of a tab that this menu item will activate. Not
compatible with href
.
An link address. Not compatible with tabName
.
If href
is supplied, should the link open in a new
browser tab?
If TRUE
, this menuItem
or menuSubItem
will start selected. If no item have selected=TRUE
, then the first
menuItem
will start selected.
A unique name given to each menuItem
that serves
to indicate which one (if any) is currently expanded. (This is only applicable
to menuItem
s that have children and it is mostly only useful for
bookmarking state.)
Should this menuItem
be expanded on app startup?
(This is only applicable to menuItem
s that have children, and only
one of these can be expanded at any given time).
Menu items (and similarly, sub-items) should have a value for either
href
or tabName
; otherwise the item would do nothing. If it has
a value for href
, then the item will simply be a link to that value.
If a menuItem
has a non-NULL tabName
, then the menuItem
will behave like a tab -- in other words, clicking on the menuItem
will bring a corresponding tabItem
to the front, similar to a
tabPanel
. One important difference between a
menuItem
and a tabPanel
is that, for a menuItem
, you
must also supply a corresponding tabItem
with the same value for
tabName
, whereas for a tabPanel
, no tabName
is needed.
(This is because the structure of a tabPanel
is such that the tab name
can be automatically generated.) Sub-items are also able to activate
tabItem
s.
Menu items (but not sub-items) also may have an optional badge. A badge is a colored oval containing text.
dashboardSidebar
for example usage. For
dynamically-generated sidebar menus, see renderMenu
and
sidebarMenuOutput
.
Other sidebar items: sidebarSearchForm
,
sidebarUserPanel