megadraft
Version:
Rich Text editor built on top of draft.js
79 lines (65 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = ImageBlock;
var _react = _interopRequireDefault(require("react"));
var _plugin = require("../../components/plugin");
var _icons = _interopRequireDefault(require("../../icons"));
var _ImageBlockStyle = _interopRequireDefault(require("./ImageBlockStyle"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function ImageBlock(props) {
var container = props.container,
blockProps = props.blockProps,
data = props.data;
var updateData = container.updateData,
remove = container.remove;
var getInitialReadOnly = blockProps.getInitialReadOnly;
var actions = [{
key: "delete",
icon: _icons["default"].DeleteIcon,
action: remove
}];
var readOnly = getInitialReadOnly();
function handleCaptionChange(event) {
event.stopPropagation();
updateData({
caption: event.target.value
});
}
function handleRightsHolderChange(event) {
event.stopPropagation();
updateData({
rightsHolder: event.target.value
});
}
function handleImageClick(event) {
event.preventDefault();
var src = window.prompt("Enter an URL");
if (!src) {
return;
}
updateData({
src: src
});
}
return /*#__PURE__*/_react["default"].createElement(_plugin.CommonBlock, _extends({}, props, {
actions: actions
}), /*#__PURE__*/_react["default"].createElement(_plugin.BlockContent, null, /*#__PURE__*/_react["default"].createElement("img", {
style: _ImageBlockStyle["default"].image,
src: data.src,
alt: data.caption,
onClick: handleImageClick
})), /*#__PURE__*/_react["default"].createElement(_plugin.BlockData, null, /*#__PURE__*/_react["default"].createElement(_plugin.BlockInput, {
placeholder: "Caption",
value: data.caption,
onChange: handleCaptionChange,
readOnly: readOnly
}), /*#__PURE__*/_react["default"].createElement(_plugin.BlockInput, {
placeholder: "Rights Holder",
value: data.rightsHolder,
onChange: handleRightsHolderChange,
readOnly: readOnly
})));
}