scratch-www/src/views/preview/extension-chip.jsx

49 lines
1.5 KiB
React
Raw Normal View History

2018-06-13 14:53:41 -04:00
const classNames = require('classnames');
const React = require('react');
2018-06-13 14:53:41 -04:00
const PropTypes = require('prop-types');
2018-06-22 10:01:12 -04:00
const FormattedMessage = require('react-intl').FormattedMessage;
require('./extension-chip.scss');
2018-06-13 14:53:41 -04:00
const ExtensionChip = props => (
<div className={classNames('extension-chip', {'has-status': props.hasStatus})}>
{props.iconURI &&
<img
className="extension-icon"
src={props.iconURI}
/>
}
<div className="extension-content">
2018-06-22 10:01:12 -04:00
{props.extensionL10n ?
<FormattedMessage id={props.extensionL10n} /> :
<span>{props.extensionName}</span>
}
2018-06-13 14:53:41 -04:00
{props.hasStatus && (
<div className="extension-status">
<FormattedMessage id="project.needsConnection" />
2018-06-13 14:53:41 -04:00
</div>
)}
{props.action && (
<a href={props.action.uri}>
<div className="extension-action">
<FormattedMessage id={props.action.l10nId} />
<img src="/svgs/project/r-arrow.svg" />
</div>
</a>
)}
</div>
</div>
);
2018-06-13 14:53:41 -04:00
ExtensionChip.propTypes = {
action: PropTypes.shape({
l10nId: PropTypes.string,
uri: PropTypes.string
}),
2018-06-22 10:01:12 -04:00
extensionL10n: PropTypes.string,
2018-06-13 14:53:41 -04:00
extensionName: PropTypes.string,
2018-06-15 08:47:52 -04:00
hasStatus: PropTypes.bool,
iconURI: PropTypes.string
2018-06-13 14:53:41 -04:00
};
module.exports = ExtensionChip;