Delete card by clicking a button
FeediBackItem.jsx
import Card from './shared/Card';
import PropTypes from 'prop-types';
import { FaTimes } from 'react-icons/fa';
function FeedBackItem({ item, handleDelete }) {
return (
<Card>
<div className='num-display'>{item.rating}</div>
<button onClick={() => handleDelete(item.id)} className='close'>
<FaTimes color='purple' />
</button>
<div className='text-display'>{item.text}</div>
</Card>
);
}
FeedBackItem.propTypes = {
item: PropTypes.object.isRequired,
};
export default FeedBackItem;
FeediBackList.jsx
import FeedBackItem from './FeedBackItem';
import PropTypes from 'prop-types';
function FeedbackList({ feedback, handleDelete }) {
if (!feedback || feedback.length === 0) {
return <p>There is no feedback yet.</p>;
}
return (
<div className='feedback-list'>
{feedback.map((item) => (
<FeedBackItem key={item.id} item={item} handleDelete={handleDelete} />
))}
</div>
);
}
FeedbackList.propTypes = {
feedback: PropTypes.arrayOf(
PropTypes.shape({
id: PropTypes.number.isRequired,
text: PropTypes.string.isRequired,
rating: PropTypes.number.isRequired,
})
),
};
export default FeedbackList;