QueueItem.jsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from "react";
  2. import { removeAudioExtension } from "../../utils/regex";
  3. import "./style.scoped.scss";
  4. import CloseIcon from "../../assets/close_icon.svg";
  5. import DragIcon from "../../assets/drag_icon.png";
  6. import { sortableHandle } from "react-sortable-hoc";
  7. import { useDispatch } from "react-redux";
  8. import { actionDeleteTrackFromQueue } from "../../redux/actions/creators/audio";
  9. const DragHandle = sortableHandle(() => <img src={DragIcon} alt="drag-icon" />);
  10. const QueueItem = (props) => {
  11. const dispatch = useDispatch();
  12. const { data } = props;
  13. const title = data.id3.title || removeAudioExtension(data.originalFileName);
  14. return (
  15. <div className="queue-item">
  16. <div className="info">
  17. <div className="drag-icon">
  18. <DragHandle />
  19. </div>
  20. <p className="title">{title}</p>
  21. </div>
  22. <div className="buttons">
  23. <div
  24. className="button-remove"
  25. onClick={() => dispatch(actionDeleteTrackFromQueue(data))}
  26. >
  27. <img src={CloseIcon} alt="close_icon" />
  28. </div>
  29. </div>
  30. </div>
  31. );
  32. };
  33. export default QueueItem;