UNPKG

@wordpress/edit-post

Version:
123 lines (102 loc) 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _element = require("@wordpress/element"); var _lodash = require("lodash"); var _i18n = require("@wordpress/i18n"); var _components = require("@wordpress/components"); var _data = require("@wordpress/data"); var _editor = require("@wordpress/editor"); var _coreData = require("@wordpress/core-data"); var _store = require("../../../store"); var _blocks = require("@wordpress/blocks"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function PostTemplateActions() { const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false); const [title, setTitle] = (0, _element.useState)(''); const { template, supportsTemplateMode } = (0, _data.useSelect)(select => { var _getPostType$viewable, _getPostType; const { getCurrentPostType } = select(_editor.store); const { getPostType } = select(_coreData.store); const { getEditedPostTemplate } = select(_store.store); const isViewable = (_getPostType$viewable = (_getPostType = getPostType(getCurrentPostType())) === null || _getPostType === void 0 ? void 0 : _getPostType.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false; const _supportsTemplateMode = select(_editor.store).getEditorSettings().supportsTemplateMode && isViewable; return { template: _supportsTemplateMode && getEditedPostTemplate(), supportsTemplateMode: _supportsTemplateMode }; }, []); const { __unstableSwitchToTemplateMode } = (0, _data.useDispatch)(_store.store); if (!supportsTemplateMode) { return null; } return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)("div", { className: "edit-post-template__actions" }, !!template && (0, _element.createElement)(_components.Button, { isLink: true, onClick: () => __unstableSwitchToTemplateMode() }, (0, _i18n.__)('Edit')), (0, _element.createElement)(_components.Button, { isLink: true, onClick: () => setIsModalOpen(true) }, (0, _i18n.__)('New'))), isModalOpen && (0, _element.createElement)(_components.Modal, { title: (0, _i18n.__)('Create a custom template'), closeLabel: (0, _i18n.__)('Close'), onRequestClose: () => { setIsModalOpen(false); setTitle(''); }, overlayClassName: "edit-post-template__modal" }, (0, _element.createElement)("form", { onSubmit: event => { event.preventDefault(); const defaultTitle = (0, _i18n.__)('Custom Template'); const templateContent = [(0, _blocks.createBlock)('core/site-title'), (0, _blocks.createBlock)('core/site-tagline'), (0, _blocks.createBlock)('core/separator'), (0, _blocks.createBlock)('core/post-title'), (0, _blocks.createBlock)('core/post-content')]; __unstableSwitchToTemplateMode({ slug: 'wp-custom-template-' + (0, _lodash.kebabCase)(title !== null && title !== void 0 ? title : defaultTitle), content: (0, _blocks.serialize)(templateContent), title: title !== null && title !== void 0 ? title : defaultTitle }); setIsModalOpen(false); } }, (0, _element.createElement)(_components.TextControl, { label: (0, _i18n.__)('Name'), value: title, onChange: setTitle }), (0, _element.createElement)(_components.Flex, { className: "edit-post-post-template__modal-actions", justify: "flex-end" }, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, { isSecondary: true, onClick: () => { setIsModalOpen(false); setTitle(''); } }, (0, _i18n.__)('Cancel'))), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, { isPrimary: true, type: "submit" }, (0, _i18n.__)('Create'))))))); } var _default = PostTemplateActions; exports.default = _default; //# sourceMappingURL=actions.js.map