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