@botonic/react
Version:
Build Chatbots using React
26 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RatingSelector = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
/** biome-ignore-all lint/a11y/noStaticElementInteractions: we need to use static elements for the rating selector */
/** biome-ignore-all lint/a11y/useKeyWithClickEvents: we need to use key with click events for the rating selector */
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, { isSent: isSent, children: Array.from({ length: NUMBER_OF_RATING_BUTTONS }, (_star, i) => {
const ratingNumber = i + 1;
return ((0, jsx_runtime_1.jsxs)("div", { 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 }))] }, ratingNumber));
}) }));
};
exports.RatingSelector = RatingSelector;
//# sourceMappingURL=rating-selector.js.map