@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
74 lines (57 loc) • 2.62 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var React = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _StarEmpty = _interopRequireDefault(require("../icons/StarEmpty"));
var _StarFull = _interopRequireDefault(require("../icons/StarFull"));
var _defaultTheme = _interopRequireDefault(require("../defaultTheme"));
var _consts = _interopRequireDefault(require("./consts"));
var _consts2 = require("../Icon/consts");
var _useTranslate = _interopRequireDefault(require("../hooks/useTranslate"));
var StyledRatingStars = _styledComponents.default.div.withConfig({
displayName: "RatingStars__StyledRatingStars",
componentId: "sc-1xop7i-0"
})(["display:flex;flex-direction:row;justify-content:flex-start;flex-shrink:0;svg{flex-shrink:0;}"]); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledRatingStars.defaultProps = {
theme: _defaultTheme.default
};
var RatingStars = function RatingStars(_ref) {
var rating = _ref.rating,
_ref$size = _ref.size,
size = _ref$size === void 0 ? _consts2.ICON_SIZES.SMALL : _ref$size,
dataTest = _ref.dataTest,
_ref$color = _ref.color,
color = _ref$color === void 0 ? _consts2.ICON_COLORS.PRIMARY : _ref$color,
_ref$showEmpty = _ref.showEmpty,
showEmpty = _ref$showEmpty === void 0 ? false : _ref$showEmpty;
var translate = (0, _useTranslate.default)();
var ratingRounded = Math.round(rating);
var starsCount = showEmpty ? _consts.default : ratingRounded;
return /*#__PURE__*/React.createElement(StyledRatingStars, {
"data-test": dataTest,
size: size,
"aria-label": translate("ratingstar_description", {
number: ratingRounded,
total: starsCount
})
}, Array.apply(void 0, (0, _toConsumableArray2.default)(Array(starsCount))).map(function (_, index) {
var key = "star-".concat(index);
return index <= ratingRounded - 1 ? /*#__PURE__*/React.createElement(_StarFull.default, {
key: key,
size: size,
color: color
}) : /*#__PURE__*/React.createElement(_StarEmpty.default, {
key: key,
size: size,
color: color
});
}));
};
var _default = RatingStars;
exports.default = _default;