shineout
Version:
Shein 前端组件库
57 lines (41 loc) • 1.41 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = events;
var _react = _interopRequireDefault(require("react"));
var _reactDom = _interopRequireDefault(require("react-dom"));
var _Gallery = _interopRequireDefault(require("./Gallery"));
var _config = require("../config");
var _styles = require("./styles");
var container;
function close() {
// eslint-disable-next-line
document.removeEventListener('keydown', keyClose);
_reactDom.default.unmountComponentAtNode(container);
if (container && container.parentNode) container.parentNode.removeChild(container);
container = null;
}
function keyClose(e) {
if (e.keyCode === 27) close();
}
function getContainer() {
if (container) return container;
var defaultContainer = (0, _config.getDefaultContainer)();
container = document.createElement('div');
defaultContainer.appendChild(container);
container.className = (0, _styles.imageClass)('gallery');
return container;
}
function events(images, current) {
if (current === void 0) {
current = 0;
}
if (!Array.isArray(images)) images = [images];
var div = getContainer();
document.addEventListener('keydown', keyClose);
_reactDom.default.render(_react.default.createElement(_Gallery.default, {
onClose: close,
current: current,
images: images
}), div);
}