@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
94 lines (89 loc) • 2.72 kB
JavaScript
;
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