choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
55 lines (46 loc) • 1.83 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.PictureProvider = void 0;
var _react = _interopRequireWildcard(require("react"));
var _preview = _interopRequireDefault(require("../modal/preview"));
var PictureContext = /*#__PURE__*/(0, _react.createContext)(undefined);
var _default = PictureContext;
exports["default"] = _default;
var PictureProvider = function PictureProvider(props) {
var children = props.children;
var pictureList = (0, _react.useRef)([]);
var registerPicture = (0, _react.useCallback)(function (index, pictureRef) {
if (pictureList.current[index] !== pictureRef) {
pictureList.current[index] = pictureRef;
}
}, [pictureList]);
var unRegisterPicture = (0, _react.useCallback)(function (index, pictureRef) {
if (pictureList.current[index] === pictureRef) {
pictureList.current[index] = undefined;
}
}, [pictureList]);
var preview = (0, _react.useCallback)(function (index) {
(0, _preview["default"])({
defaultIndex: index,
list: pictureList.current.filter(function (picture) {
return picture && picture.src;
})
});
}, [pictureList]);
var value = (0, _react.useMemo)(function () {
return {
registerPicture: registerPicture,
unRegisterPicture: unRegisterPicture,
preview: preview
};
}, [registerPicture, unRegisterPicture, preview]);
return /*#__PURE__*/_react["default"].createElement(PictureContext.Provider, {
value: value
}, children);
};
exports.PictureProvider = PictureProvider;
//# sourceMappingURL=PictureContext.js.map
;