UNPKG

@wordpress/block-editor

Version:
64 lines (52 loc) 1.69 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = UnitControl; exports.useCustomUnits = useCustomUnits; var _element = require("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _components = require("@wordpress/components"); var _useEditorFeature = _interopRequireDefault(require("../use-editor-feature")); /** * WordPress dependencies */ /** * Internal dependencies */ function UnitControl({ units: unitsProp, ...props }) { const units = useCustomUnits(unitsProp); return (0, _element.createElement)(_components.__experimentalUnitControl, (0, _extends2.default)({ units: units }, props)); } /** * Filters available units based on values defined by settings. * * @param {Array} settings Collection of preferred units. * @param {Array} units Collection of available units. * * @return {Array} Filtered units based on settings. */ function filterUnitsWithSettings(settings = [], units = []) { return units.filter(unit => { return settings.includes(unit.value); }); } /** * Custom hook to retrieve and consolidate units setting from add_theme_support(). * * @param {Array} units Collection of available units. * * @return {Array} Filtered units based on settings. */ function useCustomUnits(units) { const availableUnits = (0, _useEditorFeature.default)('spacing.units'); const usedUnits = filterUnitsWithSettings(!availableUnits ? [] : availableUnits, units); return usedUnits.length === 0 ? false : usedUnits; } //# sourceMappingURL=index.js.map