UNPKG

vcc-ui

Version:

A React library for building user interfaces at Volvo Cars

26 lines (25 loc) 1.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.createResponsivePropType = createResponsivePropType; exports.responsiveStringProp = exports.responsiveNumberProp = exports.responsiveNumberOrStringProp = exports.oneOf = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); /** We need to create our own version of this, as it's not possible to combine out-of-the-box PropTypes with custom function validators. */ const oneOf = validTypes => (props, propName, componentName) => { if (validTypes.indexOf(props[propName]) === -1) { return new Error(`Invalid prop supplied to '${componentName}'. Must be one of ['${validTypes.join("', '")}'].`); } }; exports.oneOf = oneOf; const responsiveNumberOrStringProp = exports.responsiveNumberOrStringProp = createResponsivePropType([_propTypes.default.number, _propTypes.default.string]); const responsiveNumberProp = exports.responsiveNumberProp = createResponsivePropType(_propTypes.default.number); const responsiveStringProp = exports.responsiveStringProp = createResponsivePropType(_propTypes.default.string); function createResponsivePropType(propTypes) { return Array.isArray(propTypes) ? _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType(propTypes)), _propTypes.default.objectOf(_propTypes.default.oneOfType(propTypes)), ...propTypes]) : _propTypes.default.oneOfType([_propTypes.default.arrayOf(propTypes), _propTypes.default.objectOf(propTypes), propTypes]); }