mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-12-14 01:31:05 -05:00
35 lines
1,013 B
React
35 lines
1,013 B
React
|
const PropTypes = require('prop-types');
|
||
|
const React = require('react');
|
||
|
const classNames = require('classnames');
|
||
|
const FlexRow = require('../../components/flex-row/flex-row.jsx');
|
||
|
const Button = require('../../components/forms/button.jsx');
|
||
|
|
||
|
require('./banner.scss');
|
||
|
|
||
|
const Banner = ({className, message, actionMessage, onAction}) => (
|
||
|
<div className={classNames('banner-outer', className)}>
|
||
|
<FlexRow className="inner banner-inner">
|
||
|
<span className="banner-text">
|
||
|
{message}
|
||
|
</span>
|
||
|
{actionMessage && onAction && (
|
||
|
<Button
|
||
|
className="button banner-button"
|
||
|
onClick={onAction}
|
||
|
>
|
||
|
{actionMessage}
|
||
|
</Button>
|
||
|
)}
|
||
|
</FlexRow>
|
||
|
</div>
|
||
|
);
|
||
|
|
||
|
Banner.propTypes = {
|
||
|
actionMessage: PropTypes.node,
|
||
|
className: PropTypes.string,
|
||
|
message: PropTypes.node.isRequired,
|
||
|
onAction: PropTypes.func
|
||
|
};
|
||
|
|
||
|
module.exports = Banner;
|