UNPKG

@wordpress/editor

Version:
115 lines (95 loc) 2.43 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.PostSlug = void 0; var _element = require("@wordpress/element"); var _data = require("@wordpress/data"); var _i18n = require("@wordpress/i18n"); var _compose = require("@wordpress/compose"); var _url = require("@wordpress/url"); var _check = _interopRequireDefault(require("./check")); var _url2 = require("../../utils/url"); /** * WordPress dependencies */ /** * Internal dependencies */ class PostSlug extends _element.Component { constructor({ postSlug, postTitle, postID }) { super(...arguments); this.state = { editedSlug: (0, _url.safeDecodeURIComponent)(postSlug) || (0, _url2.cleanForSlug)(postTitle) || postID }; this.setSlug = this.setSlug.bind(this); } setSlug(event) { const { postSlug, onUpdateSlug } = this.props; const { value } = event.target; const editedSlug = (0, _url2.cleanForSlug)(value); if (editedSlug === postSlug) { return; } onUpdateSlug(editedSlug); } render() { const { instanceId } = this.props; const { editedSlug } = this.state; const inputId = 'editor-post-slug-' + instanceId; return (0, _element.createElement)(_check.default, null, (0, _element.createElement)("label", { htmlFor: inputId }, (0, _i18n.__)('Slug')), (0, _element.createElement)("input", { type: "text", id: inputId, value: editedSlug, onChange: event => this.setState({ editedSlug: event.target.value }), onBlur: this.setSlug, className: "editor-post-slug__input" })); } } exports.PostSlug = PostSlug; var _default = (0, _compose.compose)([(0, _data.withSelect)(select => { const { getCurrentPost, getEditedPostAttribute } = select('core/editor'); const { id } = getCurrentPost(); return { postSlug: getEditedPostAttribute('slug'), postTitle: getEditedPostAttribute('title'), postID: id }; }), (0, _data.withDispatch)(dispatch => { const { editPost } = dispatch('core/editor'); return { onUpdateSlug(slug) { editPost({ slug }); } }; }), _compose.withInstanceId])(PostSlug); exports.default = _default; //# sourceMappingURL=index.js.map