UNPKG

@wordpress/editor

Version:
94 lines (89 loc) 2.72 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _clsx = _interopRequireDefault(require("clsx")); var _components = require("@wordpress/components"); var _i18n = require("@wordpress/i18n"); var _htmlEntities = require("@wordpress/html-entities"); var _data = require("@wordpress/data"); var _blockEditor = require("@wordpress/block-editor"); var _element = require("@wordpress/element"); var _constants = require("./constants"); var _usePostTitleFocus = _interopRequireDefault(require("./use-post-title-focus")); var _usePostTitle = _interopRequireDefault(require("./use-post-title")); var _jsxRuntime = require("react/jsx-runtime"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ /** * Renders a raw post title input field. * * @param {Object} _ Unused parameter. * @param {Element} forwardedRef Reference to the component's DOM node. * * @return {Component} The rendered component. */function PostTitleRaw(_, forwardedRef) { const { placeholder } = (0, _data.useSelect)(select => { const { getSettings } = select(_blockEditor.store); const { titlePlaceholder } = getSettings(); return { placeholder: titlePlaceholder }; }, []); const [isSelected, setIsSelected] = (0, _element.useState)(false); const { title, setTitle: onUpdate } = (0, _usePostTitle.default)(); const { ref: focusRef } = (0, _usePostTitleFocus.default)(forwardedRef); function onChange(value) { onUpdate(value.replace(_constants.REGEXP_NEWLINES, ' ')); } function onSelect() { setIsSelected(true); } function onUnselect() { setIsSelected(false); } // The wp-block className is important for editor styles. // This same block is used in both the visual and the code editor. const className = (0, _clsx.default)(_constants.DEFAULT_CLASSNAMES, { 'is-selected': isSelected, 'is-raw-text': true }); const decodedPlaceholder = (0, _htmlEntities.decodeEntities)(placeholder) || (0, _i18n.__)('Add title'); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextareaControl, { ref: focusRef, value: title, onChange: onChange, onFocus: onSelect, onBlur: onUnselect, label: placeholder, className: className, placeholder: decodedPlaceholder, hideLabelFromVision: true, autoComplete: "off", dir: "auto", rows: 1, __nextHasNoMarginBottom: true }); } var _default = exports.default = (0, _element.forwardRef)(PostTitleRaw); //# sourceMappingURL=post-title-raw.js.map