labo-components
Version:
48 lines (41 loc) • 1.27 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
import ReactTooltip from 'react-tooltip';
import classNames from 'classnames';
import IDUtil from '../../util/IDUtil';
/**
* Component with information icon and tooltip
*
* className could be e.g.: primary, secondary, black, grey, white, left
* see Info.scss for all classes or add your own
*/
const Info = ({ id, text, className }) => (
<span
className={classNames(IDUtil.cssClassName('info'), {
[className]: className
})}
>
<i
className="fas fa-info-circle"
data-for={'tooltip__' + id}
data-tip={text}
data-html={true}
/>
<ReactTooltip id={'tooltip__' + id} />
</span>
);
Info.propTypes = {
// unique identifier
id: PropTypes.string.isRequired,
// tooltip text
text: PropTypes.string.isRequired,
// (optional) className for styling
className: PropTypes.string
};
// Render Info with content by id from a strings list
export const renderInfoWithId = (id, strings, className) => {
const text =
id in strings ? strings[id] : 'Could not find string with id ' + id;
return <Info id={id} text={text} className={className} />;
};
export default Info;