import { IconStar, IconStarFilled } from "@components/icons.tsx";
import { Signal, useSignal } from "@preact/signals";
import { useState } from "preact/hooks";
export const SmallRating = (
{ max = 5, rating }: { max?: number; rating: number },
) => {
return (
{Array.from({ length: max }).map((_, i) => {
return (
{(i + 1) <= rating
?
: }
);
})}
);
};
export const Rating = (
{ max, rating = useSignal(0) }: {
max?: number;
defaultRating: number;
rating: Signal;
},
) => {
const [hover, setHover] = useState(0);
const ratingValue = rating.value || 0;
return (
{Array.from({ length: max || 5 }).map((_, i) => {
return (
setHover(i + 1)}
onClick={() => (rating.value = i + 1)}
>
{(i + 1) <= ratingValue || (i + 1) <= hover
?
: }
);
})}
);
};