star.svg 를 사용하여 별점표시 컴포넌트를 만들어보았습니다.
src/assets/star.svg // 별 하나
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24">
<path d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z"/>
</svg>
import React from "react";
import { ReactComponent as Star } from "assets/star.svg";
interface RatingType {
rating?: number;
maxRating?: number;
}
const StarRating = ({ rating, maxRating = 5 }: RatingType) => {
return (
<>
{[...Array(maxRating)].map((star, i) => {
if (rating && i < rating) {
return <Star key={`${star}${i}`} fill="#ffc500" />;
}
return <Star key={`${star}${i}`} fill="#ccc" />;
})}
</>
);
};
export default StarRating;
<StarRating rating={rating} />