UNPKG

@wordpress/preferences

Version:
66 lines (63 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = PreferenceToggleMenuItem; var _data = require("@wordpress/data"); var _components = require("@wordpress/components"); var _i18n = require("@wordpress/i18n"); var _icons = require("@wordpress/icons"); var _a11y = require("@wordpress/a11y"); var _store = require("../../store"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ /** * Internal dependencies */ function PreferenceToggleMenuItem({ scope, name, label, info, messageActivated, messageDeactivated, shortcut, handleToggling = true, onToggle = () => null, disabled = false }) { const isActive = (0, _data.useSelect)(select => !!select(_store.store).get(scope, name), [scope, name]); const { toggle } = (0, _data.useDispatch)(_store.store); const speakMessage = () => { if (isActive) { const message = messageDeactivated || (0, _i18n.sprintf)(/* translators: %s: preference name, e.g. 'Fullscreen mode' */ (0, _i18n.__)('Preference deactivated - %s'), label); (0, _a11y.speak)(message); } else { const message = messageActivated || (0, _i18n.sprintf)(/* translators: %s: preference name, e.g. 'Fullscreen mode' */ (0, _i18n.__)('Preference activated - %s'), label); (0, _a11y.speak)(message); } }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, { icon: isActive && _icons.check, isSelected: isActive, onClick: () => { onToggle(); if (handleToggling) { toggle(scope, name); } speakMessage(); }, role: "menuitemcheckbox", info: info, shortcut: shortcut, disabled: disabled, children: label }); } //# sourceMappingURL=index.js.map