bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/common/icon/component.jsx
2024-06-11 13:10:04 -03:00

35 lines
817 B
JavaScript

import React, { memo } from 'react';
import PropTypes from 'prop-types';
import cx from 'classnames';
import { omit } from 'radash';
import Styled from './styles';
const propTypes = {
iconName: PropTypes.string.isRequired,
prependIconName: PropTypes.string,
rotate: PropTypes.bool,
className: PropTypes.string,
color: PropTypes.string,
};
const Icon = ({
className = '',
prependIconName = 'icon-bbb-',
iconName,
rotate = false,
color = undefined,
...props
}) => (
<Styled.Icon
color={color}
className={cx(className, [prependIconName, iconName].join(''))}
// ToastContainer from react-toastify passes a useless closeToast prop here
{...omit(props, ['closeToast', 'animations', 'loading'])}
$rotate={rotate}
/>
);
export default memo(Icon);
Icon.propTypes = propTypes;