@wordpress/block-library
Version:
Block library for the WordPress editor.
77 lines (74 loc) • 2.79 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = HTMLEdit;
var _i18n = require("@wordpress/i18n");
var _element = require("@wordpress/element");
var _blockEditor = require("@wordpress/block-editor");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
var _compose = require("@wordpress/compose");
var _preview = _interopRequireDefault(require("./preview"));
var _jsxRuntime = require("react/jsx-runtime");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function HTMLEdit({
attributes,
setAttributes,
isSelected
}) {
const [isPreview, setIsPreview] = (0, _element.useState)();
const isDisabled = (0, _element.useContext)(_components.Disabled.Context);
const instanceId = (0, _compose.useInstanceId)(HTMLEdit, 'html-edit-desc');
const isPreviewMode = (0, _data.useSelect)(select => {
return select(_blockEditor.store).getSettings().isPreviewMode;
}, []);
function switchToPreview() {
setIsPreview(true);
}
function switchToHTML() {
setIsPreview(false);
}
const blockProps = (0, _blockEditor.useBlockProps)({
className: 'block-library-html__edit',
'aria-describedby': isPreview ? instanceId : undefined
});
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
...blockProps,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.ToolbarGroup, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarButton, {
isPressed: !isPreview,
onClick: switchToHTML,
children: "HTML"
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarButton, {
isPressed: isPreview,
onClick: switchToPreview,
children: (0, _i18n.__)('Preview')
})]
})
}), isPreview || isPreviewMode || isDisabled ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_preview.default, {
content: attributes.content,
isSelected: isSelected
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.VisuallyHidden, {
id: instanceId,
children: (0, _i18n.__)('HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.')
})]
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.PlainText, {
value: attributes.content,
onChange: content => setAttributes({
content
}),
placeholder: (0, _i18n.__)('Write HTML…'),
"aria-label": (0, _i18n.__)('HTML')
})]
});
}
//# sourceMappingURL=edit.js.map
;