UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

80 lines (79 loc) 2.01 kB
import * as React from 'react'; import { Box } from '../../utils/index.js'; import { HeaderSplitButton } from './HeaderSplitButton.js'; import { HeaderDropdownButton } from './HeaderDropdownButton.js'; import { HeaderBasicButton } from './HeaderBasicButton.js'; export const HeaderButton = React.forwardRef((props, ref) => { let { name, description, htmlName, isActive = false, startIcon, menuItems, disabled, ...rest } = props; let buttonProps = { startIcon: startIcon ? React.createElement( Box, { as: 'span', className: 'iui-header-breadcrumb-button-icon', 'aria-hidden': true, }, startIcon, ) : null, children: React.createElement( Box, { as: 'span', className: 'iui-header-breadcrumb-button-text', }, React.createElement( Box, { as: 'span', className: 'iui-header-breadcrumb-button-text-label', }, name, ), description && React.createElement( Box, { as: 'span', className: 'iui-header-breadcrumb-button-text-sublabel', }, description, ), ), ref: ref, disabled: disabled, name: htmlName, ...(!!menuItems && { menuItems, }), ...rest, }; let headerButton = props.menuItems && props.onClick ? React.createElement(HeaderSplitButton, buttonProps) : props.menuItems ? React.createElement(HeaderDropdownButton, buttonProps) : React.createElement(HeaderBasicButton, buttonProps); return React.createElement( Box, { as: 'li', className: 'iui-header-breadcrumb-item', 'aria-current': isActive ? 'location' : void 0, 'aria-disabled': disabled ? 'true' : void 0, }, headerButton, ); }); if ('development' === process.env.NODE_ENV) HeaderButton.displayName = 'HeaderButton';