UNPKG

@wordpress/block-library

Version:
77 lines (74 loc) 2.79 kB
"use strict"; 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