UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

33 lines (32 loc) 1.1 kB
import * as React from 'react'; import cx from 'classnames'; import { SvgChevronRight, SvgChevronRightSmall } from '../../utils/index.js'; import { IconButton } from '../Buttons/IconButton.js'; import { TreeContext } from './TreeContext.js'; export const TreeNodeExpander = React.forwardRef((props, ref) => { let { isExpanded, expanderIconProps = {}, ...rest } = props; let size = React.useContext(TreeContext)?.size ?? 'default'; let ChevronIcon = 'small' === size ? SvgChevronRightSmall : SvgChevronRight; return React.createElement( IconButton, { styleType: 'borderless', size: 'small', 'aria-label': isExpanded ? 'Collapse' : 'Expand', ref: ref, ...rest, }, React.createElement(ChevronIcon, { ...expanderIconProps, className: cx( 'iui-tree-node-content-expander-icon', expanderIconProps?.className, { 'iui-tree-node-content-expander-icon-expanded': isExpanded, }, ), }), ); }); if ('development' === process.env.NODE_ENV) TreeNodeExpander.displayName = 'TreeNode.Expander';