@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.
70 lines (54 loc) • 2.2 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
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"));
const 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
};
const RatingStars = ({
rating,
size = _consts2.ICON_SIZES.SMALL,
dataTest,
color = _consts2.ICON_COLORS.PRIMARY,
showEmpty = false
}) => {
const translate = (0, _useTranslate.default)();
const ratingRounded = Math.round(rating);
const 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(...Array(starsCount)).map((_, index) => {
const key = `star-${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;