UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

48 lines (47 loc) 1.15 kB
import cx from 'classnames'; import * as React from 'react'; import { Button } from '../Buttons/Button.js'; import { Tooltip } from '../Tooltip/Tooltip.js'; import { SidenavExpandedContext } from './SideNavigation.js'; export const SidenavButton = React.forwardRef((props, ref) => { let { className, children, isActive = false, disabled = false, isSubmenuOpen = false, ...rest } = props; let isExpanded = true === React.useContext(SidenavExpandedContext); let sidenavButton = React.createElement( Button, { className: cx( 'iui-sidenav-button', { 'iui-submenu-open': isSubmenuOpen, }, className, ), 'data-iui-active': isActive, size: 'large', disabled: disabled, ref: ref, ...rest, }, children, ); return isExpanded ? sidenavButton : React.createElement( Tooltip, { content: children, placement: 'right', ariaStrategy: 'none', }, sidenavButton, ); }); if ('development' === process.env.NODE_ENV) SidenavButton.displayName = 'SidenavButton';