@botonic/react
Version:
Build Chatbots using React
23 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RatingSelector = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const smileys_1 = require("./smileys");
const stars_1 = require("./stars");
const styles_1 = require("./styles");
const types_1 = require("./types");
const NUMBER_OF_RATING_BUTTONS = 5;
const RatingSelector = ({ color, isSent, onRatingChange, ratingValue, ratingType, valueSent, }) => {
const [hover, setHover] = (0, react_1.useState)(valueSent ? valueSent : -1);
const onHover = (ratingNumber) => {
if (!valueSent)
setHover(ratingNumber);
};
return ((0, jsx_runtime_1.jsx)(styles_1.RatingSelectorContainer, Object.assign({ isSent: isSent }, { children: Array.from({ length: NUMBER_OF_RATING_BUTTONS }, (_star, i) => {
const ratingNumber = i + 1;
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ onMouseEnter: () => onHover(ratingNumber), onMouseLeave: () => onHover(ratingValue), onClick: () => onRatingChange(ratingNumber) }, { children: [ratingType === types_1.RatingType.Stars && ((0, jsx_runtime_1.jsx)(stars_1.Stars, { color: color, ratingNumber: ratingNumber, hover: hover })), ratingType === types_1.RatingType.Smileys && ((0, jsx_runtime_1.jsx)(smileys_1.Smileys, { color: color, ratingNumber: ratingNumber, hover: hover }))] }), i));
}) })));
};
exports.RatingSelector = RatingSelector;
//# sourceMappingURL=rating-selector.js.map