import { Menu, MenuItem } from '@material-ui/core'; import React, { memo, useState } from 'react'; import { Draggable } from 'react-beautiful-dnd'; import { useTranslation } from 'react-i18next'; import { IoIosArrowDown, IoIosArrowUp } from 'react-icons/io'; import { MdMoreVert } from 'react-icons/md'; import Switch from '@material-ui/core/Switch'; import { useDispatch } from '../../../contexts/ResumeContext'; import styles from './ListItem.module.css'; const dataTestIdPrefix = 'list-item-'; const ListItem = ({ title, subtitle, text, path, data, isFirst, isLast, onEdit, index, }) => { const dispatch = useDispatch(); const { t } = useTranslation(); const [anchorEl, setAnchorEl] = useState(null); const handleClick = (event) => setAnchorEl(event.currentTarget); const toggleSwitchState = 'isVisible' in data ? data.isVisible : true; const handleClose = () => setAnchorEl(null); const handleEdit = () => { onEdit(); handleClose(); }; const handleMoveUp = () => { dispatch({ type: 'on_move_item_up', payload: { path, value: data, }, }); handleClose(); }; const handleMoveDown = () => { dispatch({ type: 'on_move_item_down', payload: { path, value: data, }, }); handleClose(); }; const handleDelete = () => { dispatch({ type: 'on_delete_item', payload: { path, value: data, }, }); handleClose(); }; const handleToggleUse = () => { dispatch({ type: 'on_toggle_use_item', payload: { path, value: data, }, }); }; return ( {(dragProvided) => (
{title} {subtitle && ( {subtitle} )} {text && ( {text} )}
{t('shared.buttons.edit')} {t('shared.buttons.delete')}
)}
); }; export default memo(ListItem); export { dataTestIdPrefix };