import pick from 'lodash/pick'; import React, { useCallback } from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { useTranslation, Trans } from 'react-i18next'; import { Link } from 'react-router-dom'; import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd'; import { Button, Icon } from 'semantic-ui-react'; import { closePopup } from '../../lib/popup'; import { DragScroller } from '../../lib/custom-ui'; import Paths from '../../constants/Paths'; import DroppableTypes from '../../constants/DroppableTypes'; import BoardWrapperContainer from '../../containers/BoardWrapperContainer'; import AddPopup from './AddPopup'; import EditPopup from './EditPopup'; import styles from './Boards.module.css'; const Boards = React.memo( ({ items, currentId, isEditable, onCreate, onUpdate, onMove, onDelete }) => { const [t] = useTranslation(); const handleDragStart = useCallback(() => { closePopup(); }, []); const handleDragEnd = useCallback( ({ draggableId, source, destination }) => { if (!destination || source.index === destination.index) { return; } onMove(draggableId, destination.index); }, [onMove], ); const handleUpdate = useCallback( (id, data) => { onUpdate(id, data); }, [onUpdate], ); const handleDelete = useCallback( id => { onDelete(id); }, [onDelete], ); const renderItems = useCallback( safeItems => safeItems.map(item => (