| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import React from 'react'
- import PropTypes from 'prop-types'
- import classNames from 'classnames'
- function Icon({
- type,
- spin,
- modifier,
- classes = {},
- accessibilityLabel,
- children
- }) {
- const iconClassName = classNames(
- 'fa',
- `fa-${type}`,
- {
- 'fa-spin': spin,
- [`fa-${modifier}`]: modifier
- },
- classes.icon
- )
- return (
- <>
- <i className={iconClassName} aria-hidden="true">
- {children}
- </i>
- {accessibilityLabel ? (
- <span className="sr-only">{accessibilityLabel}</span>
- ) : null}
- </>
- )
- }
- Icon.propTypes = {
- type: PropTypes.string.isRequired,
- spin: PropTypes.bool,
- modifier: PropTypes.string,
- classes: PropTypes.exact({
- icon: PropTypes.string
- }),
- accessibilityLabel: PropTypes.string,
- children: PropTypes.oneOfType([
- PropTypes.arrayOf(PropTypes.node),
- PropTypes.node
- ])
- }
- export default Icon
|