Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import * as React from 'react'; import cx from 'classnames'; import { IGlyph, Icon } from '../../icon'; /** * The Icon Component within a Bar. It has the option of being a button or not. */ export interface IBarIconProps { /** Passed down classname. */ className?: string; /** Glyph for svg */ icon: IGlyph; /** Custom size if needed */ iconSize?: { height?: number; width?: number }; /** Make the Button small. */ isSmall?: boolean; /** Button has a white outline and text, the background color is dependant on parent */ isReverse?: boolean; /** On click action for the button. */ onClick?: () => void; } export const BarIcon: React.FC<IBarIconProps> = ({ className, isSmall = false, isReverse = false, icon, iconSize, onClick, }) => { const combinedClass = cx({ 'panda-bar-item': true, 'flex-center': true, 'hover-cursor': !!onClick, // Reverse style 'panda-bar-item-normal': !isReverse, 'panda-bar-item-reverse': isReverse, 'panda-bar-item-button': !!onClick, // Custom classname [className || '']: true, }); if (onClick) { return ( <button className={combinedClass} onClick={onClick}> <Icon icon={icon} size={iconSize || { height: isSmall ? 15 : 20 }} /> </button> ); } return ( <div className={combinedClass}> <Icon icon={icon} size={iconSize || { height: isSmall ? 15 : 20 }} /> </div> ); }; |