읽은 책에 한정하여 평점을 매길 수 있도록 만점이 5점짜리인 평점 요소를 추가했다.
const initStars = new Array(5).fill(false)
const [clicked, setClicked] = useState(props.book && props.stars!=undefined ? savedStars : initStars)
const handleStarClick = (index) => {
let update = [...clicked]
for (let i = 0; i < 5; i++) {
update[i] = i <= index ? true : false;
}
setClicked(update)
}
return (
<ul className='rate'>
{
clicked.map((item, index) => {
return (
<li
key={index}
onClick={props.onClick ? props.onClick : () => handleStarClick(index)}
className={clicked[index] ? 'star yellowStar' : 'star normalStar'}>
<i id='rate-star' className="fas fa-star"></i>
</li>
)
})
}
<p>
{`(${clicked.filter(item => item == true).length}점/5점)`}
</p>
</ul>
)