react-images-lightbox
Version:
A simple, responsive lightbox component for displaying an array of images with React.js
78 lines (61 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _aphroditeNoImportant = require('aphrodite/no-important');
var _theme = require('../theme');
var _theme2 = _interopRequireDefault(_theme);
var _utils = require('../utils');
function Thumbnail(_ref, _ref2) {
var index = _ref.index;
var src = _ref.src;
var thumbnail = _ref.thumbnail;
var active = _ref.active;
var onClick = _ref.onClick;
var theme = _ref2.theme;
var url = thumbnail ? thumbnail : src;
var classes = _aphroditeNoImportant.StyleSheet.create((0, _utils.deepMerge)(defaultStyles, theme));
return _react2['default'].createElement('div', {
className: (0, _aphroditeNoImportant.css)(classes.thumbnail, active && classes.thumbnail__active),
onClick: function (e) {
e.preventDefault();
e.stopPropagation();
onClick(index);
},
style: { backgroundImage: 'url("' + url + '")' }
});
}
Thumbnail.propTypes = {
active: _propTypes2['default'].bool,
index: _propTypes2['default'].number,
onClick: _propTypes2['default'].func.isRequired,
src: _propTypes2['default'].string,
thumbnail: _propTypes2['default'].string
};
Thumbnail.contextTypes = {
theme: _propTypes2['default'].object.isRequired
};
var defaultStyles = {
thumbnail: {
backgroundPosition: 'center',
backgroundSize: 'cover',
borderRadius: 2,
boxShadow: 'inset 0 0 0 1px hsla(0,0%,100%,.2)',
cursor: 'pointer',
display: 'inline-block',
height: _theme2['default'].thumbnail.size,
margin: _theme2['default'].thumbnail.gutter,
overflow: 'hidden',
width: _theme2['default'].thumbnail.size
},
thumbnail__active: {
boxShadow: 'inset 0 0 0 2px ' + _theme2['default'].thumbnail.activeBorderColor
}
};
exports['default'] = Thumbnail;
module.exports = exports['default'];