/*! * Copyright (c) 2024 PLANKA Software GmbH * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ import React, { useCallback, useMemo } from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; import { useSelector } from 'react-redux'; import { Draggable } from 'react-beautiful-dnd'; import { Button } from 'semantic-ui-react'; import selectors from '../../../selectors'; import styles from './Item.module.scss'; const Item = React.memo(({ id, index, onEdit }) => { const selectCustomFieldGroupById = useMemo(() => selectors.makeSelectCustomFieldGroupById(), []); const customFieldGroup = useSelector((state) => selectCustomFieldGroupById(state, id)); const handleEditClick = useCallback(() => { onEdit(id); }, [id, onEdit]); return ( {({ innerRef, draggableProps, dragHandleProps }, { isDragging }) => { const contentNode = ( // eslint-disable-next-line react/jsx-props-no-spreading
{customFieldGroup.name}
); return isDragging ? ReactDOM.createPortal(contentNode, document.body) : contentNode; }}
); }); Item.propTypes = { id: PropTypes.string.isRequired, index: PropTypes.number.isRequired, onEdit: PropTypes.func.isRequired, }; export default Item;