diff options
Diffstat (limited to 'src/react/SVGIcon.js')
-rw-r--r-- | src/react/SVGIcon.js | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/src/react/SVGIcon.js b/src/react/SVGIcon.js deleted file mode 100644 index 8a5b1ae..0000000 --- a/src/react/SVGIcon.js +++ /dev/null @@ -1,47 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; - -import iconMap from './utils/iconMap.js'; - -const SVGIcon = ({name, onClick, label, className, iconClassName, labelClassName, labelPosition, color, disabled, ...other}) => { - - let colorClass = (color !== '') ? '__' + color : ''; - let classes = `svg-icon-wrapper ${iconClassName} ${className} ${colorClass} ${onClick ? 'clickable' : ''} ${labelPosition}`; - let camelCasedName = name.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); }); - let IconComponent = iconMap[camelCasedName]; - if (!IconComponent) { - console.error('Icon by the name ' + camelCasedName + ' is missing.'); - } - - return ( - <div {...other} onClick={onClick} className={classes} disabled={disabled}> - { IconComponent && <IconComponent className={`svg-icon __${name}`} /> } - { !IconComponent && <span className='svg-icon-missing'>Missing Icon</span> } - {label && <span className={`svg-icon-label ${labelClassName}`}>{label}</span>} - </div> - ); - -}; - -SVGIcon.propTypes = { - name: PropTypes.string.isRequired, - onClick: PropTypes.func, - label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]), - labelPosition: PropTypes.string, - className: PropTypes.string, - iconClassName: PropTypes.string, - labelClassName: PropTypes.string, - color: PropTypes.string -}; - -SVGIcon.defaultProps = { - name: '', - label: '', - className: '', - iconClassName: '', - labelClassName: '', - labelPosition: 'bottom', - color: '' -}; - -export default SVGIcon; |