@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
109 lines (105 loc) • 3.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = PostCardPanel;
var _clsx = _interopRequireDefault(require("clsx"));
var _components = require("@wordpress/components");
var _coreData = require("@wordpress/core-data");
var _data = require("@wordpress/data");
var _i18n = require("@wordpress/i18n");
var _htmlEntities = require("@wordpress/html-entities");
var _store = require("../../store");
var _constants = require("../../store/constants");
var _lockUnlock = require("../../lock-unlock");
var _postActions = _interopRequireDefault(require("../post-actions"));
var _jsxRuntime = require("react/jsx-runtime");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function PostCardPanel({
postType,
postId,
onActionPerformed
}) {
const {
isFrontPage,
isPostsPage,
title,
icon,
isSync
} = (0, _data.useSelect)(select => {
const {
__experimentalGetTemplateInfo
} = select(_store.store);
const {
canUser,
getEditedEntityRecord
} = select(_coreData.store);
const siteSettings = canUser('read', {
kind: 'root',
name: 'site'
}) ? getEditedEntityRecord('root', 'site') : undefined;
const _record = getEditedEntityRecord('postType', postType, postId);
const _templateInfo = [_constants.TEMPLATE_POST_TYPE, _constants.TEMPLATE_PART_POST_TYPE].includes(postType) && __experimentalGetTemplateInfo(_record);
let _isSync = false;
if (_constants.GLOBAL_POST_TYPES.includes(postType)) {
if (_constants.PATTERN_POST_TYPE === postType) {
// When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.
const currentSyncStatus = _record?.meta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : _record?.wp_pattern_sync_status;
_isSync = currentSyncStatus !== 'unsynced';
} else {
_isSync = true;
}
}
return {
title: _templateInfo?.title || _record?.title,
icon: (0, _lockUnlock.unlock)(select(_store.store)).getPostIcon(postType, {
area: _record?.area
}),
isSync: _isSync,
isFrontPage: siteSettings?.page_on_front === postId,
isPostsPage: siteSettings?.page_for_posts === postId
};
}, [postId, postType]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "editor-post-card-panel",
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
spacing: 2,
className: "editor-post-card-panel__header",
align: "flex-start",
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
className: (0, _clsx.default)('editor-post-card-panel__icon', {
'is-sync': isSync
}),
icon: icon
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalText, {
numberOfLines: 2,
truncate: true,
className: "editor-post-card-panel__title",
weight: 500,
as: "h2",
lineHeight: "20px",
children: [title ? (0, _htmlEntities.decodeEntities)(title) : (0, _i18n.__)('No title'), isFrontPage && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "editor-post-card-panel__title-badge",
children: (0, _i18n.__)('Homepage')
}), isPostsPage && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "editor-post-card-panel__title-badge",
children: (0, _i18n.__)('Posts Page')
})]
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_postActions.default, {
postType: postType,
postId: postId,
onActionPerformed: onActionPerformed
})]
})
});
}
//# sourceMappingURL=index.js.map