@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
72 lines (68 loc) • 2.46 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = PageAttributesOrderWithChecks;
var _i18n = require("@wordpress/i18n");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
var _element = require("@wordpress/element");
var _postTypeSupportCheck = _interopRequireDefault(require("../post-type-support-check"));
var _store = require("../../store");
var _jsxRuntime = require("react/jsx-runtime");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function PageAttributesOrder() {
const order = (0, _data.useSelect)(select => {
var _select$getEditedPost;
return (_select$getEditedPost = select(_store.store).getEditedPostAttribute('menu_order')) !== null && _select$getEditedPost !== void 0 ? _select$getEditedPost : 0;
}, []);
const {
editPost
} = (0, _data.useDispatch)(_store.store);
const [orderInput, setOrderInput] = (0, _element.useState)(null);
const setUpdatedOrder = value => {
setOrderInput(value);
const newOrder = Number(value);
if (Number.isInteger(newOrder) && value.trim?.() !== '') {
editPost({
menu_order: newOrder
});
}
};
const value = orderInput !== null && orderInput !== void 0 ? orderInput : order;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Flex, {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexBlock, {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalNumberControl, {
__next40pxDefaultSize: true,
label: (0, _i18n.__)('Order'),
help: (0, _i18n.__)('Set the page order.'),
value: value,
onChange: setUpdatedOrder,
hideLabelFromVision: true,
onBlur: () => {
setOrderInput(null);
}
})
})
});
}
/**
* Renders the Page Attributes Order component. A number input in an editor interface
* for setting the order of a given page.
* The component is now not used in core but was kept for backward compatibility.
*
* @return {Component} The component to be rendered.
*/
function PageAttributesOrderWithChecks() {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_postTypeSupportCheck.default, {
supportKeys: "page-attributes",
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PageAttributesOrder, {})
});
}
//# sourceMappingURL=order.js.map