@kadoui/react
Version:
Kadoui primitive components for React
14 lines (13 loc) • 828 B
JavaScript
"use client";
import { jsx as _jsx } from "react/jsx-runtime";
import { use } from "react";
import { RatingContext } from "./RatingContext";
export function RatingItems({ count, value, onValueChange, element, activeElement, ...p }) {
const { hoverValue, setHoverValue } = use(RatingContext);
const displayValue = hoverValue !== null ? hoverValue : value;
return (Array.from({ length: count }).map((_, index) => {
const itemValue = index + 1;
const isActive = itemValue <= displayValue;
return (_jsx("button", { role: "radio", type: "button", "aria-checked": itemValue === value, onClick: () => onValueChange(itemValue), onMouseEnter: () => setHoverValue(itemValue), "aria-label": `${itemValue} out of ${count} stars`, ...p, children: isActive ? activeElement : element }, index));
}));
}