@wordpress/edit-post
Version:
Edit Post module for WordPress.
60 lines (53 loc) • 1.36 kB
JavaScript
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import { flow } from 'lodash';
/**
* WordPress dependencies
*/
import { withSelect, withDispatch } from '@wordpress/data';
import { compose } from '@wordpress/compose';
import { MenuItem } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { check } from '@wordpress/icons';
import { speak } from '@wordpress/a11y';
/**
* Internal dependencies
*/
import { store as editPostStore } from '../../../store';
function FeatureToggle({
onToggle,
isActive,
label,
info,
messageActivated,
messageDeactivated,
shortcut
}) {
const speakMessage = () => {
if (isActive) {
speak(messageDeactivated || __('Feature deactivated'));
} else {
speak(messageActivated || __('Feature activated'));
}
};
return createElement(MenuItem, {
icon: isActive && check,
isSelected: isActive,
onClick: flow(onToggle, speakMessage),
role: "menuitemcheckbox",
info: info,
shortcut: shortcut
}, label);
}
export default compose([withSelect((select, {
feature
}) => ({
isActive: select(editPostStore).isFeatureActive(feature)
})), withDispatch((dispatch, ownProps) => ({
onToggle() {
dispatch(editPostStore).toggleFeature(ownProps.feature);
}
}))])(FeatureToggle);
//# sourceMappingURL=index.js.map