UNPKG

@wordpress/editor

Version:
89 lines (72 loc) 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = PostFormatPanel; var _element = require("@wordpress/element"); var _lodash = require("lodash"); var _components = require("@wordpress/components"); var _data = require("@wordpress/data"); var _i18n = require("@wordpress/i18n"); var _postFormat = require("../post-format"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ const getSuggestion = (supportedFormats, suggestedPostFormat) => { const formats = _postFormat.POST_FORMATS.filter(format => (0, _lodash.includes)(supportedFormats, format.id)); return (0, _lodash.find)(formats, format => format.id === suggestedPostFormat); }; const PostFormatSuggestion = ({ suggestedPostFormat, suggestionText, onUpdatePostFormat }) => (0, _element.createElement)(_components.Button, { isLink: true, onClick: () => onUpdatePostFormat(suggestedPostFormat) }, suggestionText); function PostFormatPanel() { const { currentPostFormat, suggestion } = (0, _data.useSelect)(select => { const { getEditedPostAttribute, getSuggestedPostFormat } = select('core/editor'); const supportedFormats = (0, _lodash.get)(select('core').getThemeSupports(), ['formats'], []); return { currentPostFormat: getEditedPostAttribute('format'), suggestion: getSuggestion(supportedFormats, getSuggestedPostFormat()) }; }, []); const { editPost } = (0, _data.useDispatch)('core/editor'); const onUpdatePostFormat = format => editPost({ format }); const panelBodyTitle = [(0, _i18n.__)('Suggestion:'), (0, _element.createElement)("span", { className: "editor-post-publish-panel__link", key: "label" }, (0, _i18n.__)('Use a post format'))]; if (!suggestion || suggestion.id === currentPostFormat) { return null; } return (0, _element.createElement)(_components.PanelBody, { initialOpen: false, title: panelBodyTitle }, (0, _element.createElement)("p", null, (0, _i18n.__)('Your theme uses post formats to highlight different kinds of content, like images or videos. Apply a post format to see this special styling.')), (0, _element.createElement)("p", null, (0, _element.createElement)(PostFormatSuggestion, { onUpdatePostFormat: onUpdatePostFormat, suggestedPostFormat: suggestion.id, suggestionText: (0, _i18n.sprintf)( /* translators: %s: post format */ (0, _i18n.__)('Apply the "%1$s" format.'), suggestion.caption) }))); } //# sourceMappingURL=maybe-post-format-panel.js.map