vcc-ui
Version:
VCC UI is a collection of React UI Components that can be used for developing front-end applications at Volvo Car Corporation.
85 lines (69 loc) • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LOGO_TYPES = exports.Logo = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _block = require("../block");
var _configContext = require("../../config-context");
var _helpers = require("./helpers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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; }
var images = {
square: "vcc-ui/images/volvo-logo.png",
square2x: "vcc-ui/images/volvo-logo-2x.png",
wordmark: "vcc-ui/images/volvo-wordmark-white.png",
wordmark2x: "vcc-ui/images/volvo-wordmark-white-2x.png"
};
var LOGO_TYPES = {
SQUARE: "square",
WORDMARK: "wordmark"
};
exports.LOGO_TYPES = LOGO_TYPES;
var LogoComponent = function LogoComponent(_ref) {
var type = _ref.type,
height = _ref.height,
theme = _ref.theme,
altText = _ref.altText;
return _react.default.createElement(_configContext.ConfigContext.Consumer, null, function (_ref2) {
var pathPrefix = _ref2.pathPrefix;
var _getImagesSrc = (0, _helpers.getImagesSrc)({
type: type,
theme: theme,
pathPrefix: pathPrefix,
defaultImages: images
}),
src = _getImagesSrc.src,
srcSet = _getImagesSrc.srcSet;
return _react.default.createElement(_block.Block, {
as: "img",
src: src,
srcSet: srcSet,
alt: altText,
extend: _objectSpread({
verticalAlign: "middle",
maxHeight: "100%"
}, theme.logo),
height: height
});
});
};
var propTypes = {
/** Logo type square or wordmark */
type: _propTypes.default.oneOf([LOGO_TYPES.SQUARE, LOGO_TYPES.WORDMARK]),
/** Apply custom height to logo image */
height: _propTypes.default.string,
/** Alternative text for the logo image */
altText: _propTypes.default.string
};
var defaultProps = {
type: LOGO_TYPES.SQUARE,
altText: "Volvo logo"
};
LogoComponent.propTypes = propTypes;
LogoComponent.defaultProps = defaultProps;
LogoComponent.displayName = "Logo";
var Logo = (0, _block.withTheme)(LogoComponent);
exports.Logo = Logo;