@roo-ui/components
Version:
34 lines (24 loc) • 1.74 kB
JavaScript
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import isPropValid from '@emotion/is-prop-valid';
import { VALID_STYLED_SYSTEM_PROPS } from './constants';
var toTrueHash = function toTrueHash(arrayOfStrings) {
return arrayOfStrings.reduce(function (acc, key) {
return _objectSpread({}, acc, _defineProperty({}, key, true));
}, {});
};
var styledSystemProps = toTrueHash(VALID_STYLED_SYSTEM_PROPS);
var omitProps = function omitProps() {
var customPropsList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
_ref$omitStyledSystem = _ref.omitStyledSystemProps,
omitStyledSystemProps = _ref$omitStyledSystem === void 0 ? true : _ref$omitStyledSystem;
var customProps = toTrueHash(customPropsList);
var shouldForwardProp = function shouldForwardProp(prop) {
return isPropValid(prop) && !customProps[prop] && !(omitStyledSystemProps && styledSystemProps[prop]);
};
return {
shouldForwardProp: shouldForwardProp
};
};
export default omitProps;