UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

38 lines (37 loc) 1.32 kB
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