twreporter-react
Version:
React-Redux site for The Reporter Foundation in Taiwan
89 lines (75 loc) • 2.38 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _radium = require('radium');
var _radium2 = _interopRequireDefault(_radium);
var CrossIcon = (0, _radium2['default'])(_react2['default'].createClass({
propTypes: {
image: _react2['default'].PropTypes.string,
styles: _react2['default'].PropTypes.object
},
getCrossStyle: function getCrossStyle(type) {
return {
position: 'absolute',
width: 3,
height: 14,
transform: type === 'before' ? 'rotate(45deg)' : 'rotate(-45deg)'
};
},
getDefaultProps: function getDefaultProps() {
return {
image: '',
styles: {}
};
},
render: function render() {
var icon;
var buttonWrapperStyle = {
position: 'absolute',
width: 24,
height: 24,
right: 8,
top: 8
};
var buttonStyle = {
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0,
margin: 0,
padding: 0,
border: 'none',
fontSize: 8,
color: 'transparent',
background: 'transparent',
outline: 'none'
};
if (this.props.image) {
icon = _react2['default'].createElement('img', { src: this.props.image, alt: 'Cross icon', className: 'bm-cross', style: [{ width: '100%', height: '100%' }, this.props.styles.bmCross] });
} else {
icon = _react2['default'].createElement(
'span',
{ style: [{ position: 'absolute', top: '6px', right: '14px' }] },
_react2['default'].createElement('span', { className: 'bm-cross', style: [this.getCrossStyle('before'), this.props.styles.bmCross] }),
_react2['default'].createElement('span', { className: 'bm-cross', style: [this.getCrossStyle('after'), this.props.styles.bmCross] })
);
}
return _react2['default'].createElement(
'div',
{ className: 'bm-cross-button', style: [buttonWrapperStyle, this.props.styles.bmCrossButton] },
icon,
_react2['default'].createElement(
'button',
{ onClick: this.props.onClick, style: buttonStyle },
'Close Menu'
)
);
}
}));
exports['default'] = CrossIcon;
module.exports = exports['default'];