shradmin
Version:
A frontend Framework for building admin application, using antd and mirrorjs.
128 lines (99 loc) • 4.04 kB
JavaScript
;
exports.__esModule = true;
var _style2 = require('antd/lib/modal/style');
var _modal = require('antd/lib/modal');
var _modal2 = _interopRequireDefault(_modal);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _get = require('lodash/get');
var _get2 = _interopRequireDefault(_get);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _isArray = require('lodash/isArray');
var _isArray2 = _interopRequireDefault(_isArray);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var PictureField = function (_Component) {
_inherits(PictureField, _Component);
function PictureField(props) {
_classCallCheck(this, PictureField);
var _this = _possibleConstructorReturn(this, _Component.call(this, props));
_this.handleOpen = function (e) {
var node = e.target;
var src = node.getAttribute('src');
_this.setState({ open: true, src: src });
};
_this.handleClose = function () {
_this.setState({ open: false });
};
_this.state = {
open: false,
src: ''
};
return _this;
}
PictureField.prototype.render = function render() {
var _this2 = this;
var _props = this.props,
record = _props.record,
source = _props.source,
children = _props.children,
format = _props.format;
var _state = this.state,
open = _state.open,
src = _state.src;
var style = {
display: 'flex',
flexWrap: 'wrap',
margin: '0 auto'
};
var images = format((0, _get2.default)(record, source), record);
if (!(0, _isArray2.default)(images)) {
images = [images];
}
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'ul',
{ style: style },
images.map(function (image, index) {
return _react2.default.createElement(
'li',
{ key: index },
_react2.default.createElement('img', { src: image, onClick: _this2.handleOpen, alt: '' })
);
})
),
_react2.default.createElement(
_modal2.default,
{ visible: open, closable: false, footer: null, onCancel: this.handleClose },
_react2.default.createElement(
'div',
{ style: { textAlign: 'center', padding: '1rem' } },
_react2.default.createElement('img', { src: src, alt: '', style: { width: '60%', height: '60%' } }),
_react2.default.Children.map(children, function (child, index) {
return _react2.default.createElement(
'p',
{ style: { textAlign: 'center' }, key: index },
_react2.default.cloneElement(child)
);
})
)
)
);
};
return PictureField;
}(_react.Component);
PictureField.PropTypes = {
format: _propTypes2.default.func
};
PictureField.defaultProps = {
format: function format(value, record) {
return value;
}
};
exports.default = PictureField;
module.exports = exports['default'];