shineout
Version:
Shein 前端组件库
42 lines (37 loc) • 1.13 kB
JavaScript
import React from 'react';
import ReactDOM from 'react-dom';
import Gallery from './Gallery';
import { getDefaultContainer } from '../config';
import { imageClass } from './styles';
var container;
function close() {
// eslint-disable-next-line
document.removeEventListener('keydown', keyClose);
ReactDOM.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 = getDefaultContainer();
container = document.createElement('div');
defaultContainer.appendChild(container);
container.className = imageClass('gallery');
return container;
}
export default function events(images, current) {
if (current === void 0) {
current = 0;
}
if (!Array.isArray(images)) images = [images];
var div = getContainer();
document.addEventListener('keydown', keyClose);
ReactDOM.render(React.createElement(Gallery, {
onClose: close,
current: current,
images: images
}), div);
}