import React, { useCallback } from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import { Progress } from 'semantic-ui-react'; import Item from './Item'; import Add from './Add'; import styles from './Tasks.module.scss'; const Tasks = React.memo(({ items, onCreate, onUpdate, onDelete }) => { const [t] = useTranslation(); const handleUpdate = useCallback( (id, data) => { onUpdate(id, data); }, [onUpdate], ); const handleDelete = useCallback( (id) => { onDelete(id); }, [onDelete], ); const completedItems = items.filter((item) => item.isCompleted); return ( <> {items.length > 0 && ( )} {items.map((item) => ( handleUpdate(item.id, data)} onDelete={() => handleDelete(item.id)} /> ))} ); }); Tasks.propTypes = { items: PropTypes.array.isRequired, // eslint-disable-line react/forbid-prop-types onCreate: PropTypes.func.isRequired, onUpdate: PropTypes.func.isRequired, onDelete: PropTypes.func.isRequired, }; export default Tasks;