choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
38 lines (37 loc) • 1.32 kB
JavaScript
import React, { createContext, useCallback, useMemo, useRef } from 'react';
import modalPreview from '../modal/preview';
var PictureContext = /*#__PURE__*/createContext(undefined);
export default PictureContext;
export var PictureProvider = function PictureProvider(props) {
var children = props.children;
var pictureList = useRef([]);
var registerPicture = useCallback(function (index, pictureRef) {
if (pictureList.current[index] !== pictureRef) {
pictureList.current[index] = pictureRef;
}
}, [pictureList]);
var unRegisterPicture = useCallback(function (index, pictureRef) {
if (pictureList.current[index] === pictureRef) {
pictureList.current[index] = undefined;
}
}, [pictureList]);
var preview = useCallback(function (index) {
modalPreview({
defaultIndex: index,
list: pictureList.current.filter(function (picture) {
return picture && picture.src;
})
});
}, [pictureList]);
var value = useMemo(function () {
return {
registerPicture: registerPicture,
unRegisterPicture: unRegisterPicture,
preview: preview
};
}, [registerPicture, unRegisterPicture, preview]);
return /*#__PURE__*/React.createElement(PictureContext.Provider, {
value: value
}, children);
};
//# sourceMappingURL=PictureContext.js.map