Navs (also called "left nav" or "navigation pane") provide links to the main areas of an app or a site. In larger configurations, the Nav is always on-screen, usually on the left of the view. In smaller configurations, the Nav may collapse into a skinnier version or be completely hidden until the user taps an icon.

For more details and examples visit the official docs. The R package can not handle each and every case, so for advanced use cases you need to work using the original docs to achieve the desired result.

Nav(...)

Arguments

link

INavLink
(Optional) Link to be rendered.

ariaLabel

string
(Optional) The nav container aria label.

className

string
Additional css class to apply to the Nav

componentRef

IRefObject<INav>
Optional callback to access the INav interface. Use this instead of ref for accessing the public methods and properties of the component.

expandButtonAriaLabel

string
(Optional) The nav container aria label. The link name is prepended to this label. If not provided, the aria label will default to the link name.

groups

INavLinkGroup[] | null
A collection of link groups to display in the navigation bar

initialSelectedKey

string
(Optional) The key of the nav item initially selected.

isOnTop

boolean
Indicates whether the navigation component renders on top of other content in the UI

linkAs

IComponentAs<INavButtonProps>
Render a custom link in place of the normal one. This replaces the entire button rather than simply button content

onLinkClick

(ev?: React.MouseEvent<HTMLElement>, item?: INavLink) => void
Function callback invoked when a link in the navigation is clicked

onLinkExpandClick

(ev?: React.MouseEvent<HTMLElement>, item?: INavLink) => void
Function callback invoked when the chevron on a link is clicked

onRenderGroupHeader

IRenderFunction<IRenderGroupHeaderProps>
Used to customize how content inside the group header is rendered

onRenderLink

IRenderFunction<INavLink>
Used to customize how content inside the link tag is rendered

selectedAriaLabel

string
(Deprecated) Use ariaCurrent on links instead

selectedKey

string
(Optional) The key of the nav item selected by caller.

styles

IStyleFunctionOrObject<INavStyleProps, INavStyles>
Call to provide customized styling that will layer on top of the variant rules

theme

ITheme
Theme provided by HOC.

Examples

library(shiny.fluent)

if (interactive()) {
  navigation_styles <- list(
    root = list(
      height = "100%",
      boxSizing = "border-box",
      border = "1px solid #eee",
      overflowY = "auto"
    )
  )

  link_groups <- list(
    list(
      links = list(
        list(
          name = "Home",
          expandAriaLabel = "Expand Home section",
          collapseAriaLabel = "Collapse Home section",
          links = list(
            list(
              name = "Activity",
              url = "http://msn.com",
              key = "key1",
              target = "_blank"
            ),
            list(
              name = "MSN",
              url = "http://msn.com",
              disabled = TRUE,
              key = "key2",
              target = "_blank"
            )
          ),
          isExpanded = TRUE
        ),
        list(
          name = "Documents",
          url = "http://example.com",
          key = "key3",
          isExpanded = TRUE
        ),
        list(
          name = "Pages",
          url = "http://msn.com",
          key = "key4"
        ),
        list(
          name = "Notebook",
          url = "http://msn.com",
          key = "key5",
          disabled = TRUE
        ),
        list(
          name = "Communication and Media",
          url = "http://msn.com",
          key = "key6"
        ),
        list(
          name = "News",
          url = "http://cnn.com",
          icon = "News",
          key = "key7",
          target = "_blank",
          iconProps = list(
            iconName = "News",
            styles = list(
              root = list(
                fontSize = 20,
                color = "#106ebe"
              )
            )
          )
        )
      )
    )
  )

  shinyApp(
    ui = Nav(
      groups = link_groups,
      selectedKey = "key1",
      styles = navigation_styles
    ),
    server = function(input, output) {}
  )
}