@itwin/itwinui-react
Version:
A react component library for iTwinUI
48 lines (47 loc) • 1.15 kB
JavaScript
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';