UNPKG

@wordpress/edit-post

Version:
60 lines (53 loc) 1.36 kB
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