my-tracks.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // import {SortableContainer, SortableElement} from 'react-sortable-hoc';
  2. // import {arrayMoveImmutable} from 'array-move';
  3. // import {useState,useEffect} from "react";
  4. import {connect} from "react-redux";
  5. import {CTrack} from "../track";
  6. import {CPlaylistDropZone} from "../tools";
  7. import {CPreloaded} from "../preloader";
  8. const MyTracks = ({playlist={}}) => {
  9. const{_id, name, tracks} = playlist
  10. return (
  11. <div className='Category'>
  12. <h2>{name}</h2>
  13. <CPreloaded promiseName='playlistById'>
  14. {(tracks || []).map((track,index) => <CTrack trackIndex={index} playlist={playlist} track={track}/>)}
  15. </CPreloaded>
  16. </div>
  17. )
  18. }
  19. const CMyTracks = connect(state => ({playlist: state.promise.playlistById?.payload || []}),)(MyTracks)
  20. export const MyPlaylistTracks = ({match:{params:{_id}}}) =>
  21. <>
  22. <CPlaylistDropZone >
  23. <CMyTracks />
  24. </CPlaylistDropZone >
  25. </>
  26. // const SortableItem = SortableElement(CTrack);
  27. //
  28. // const MyTracks = ( {children}) =>
  29. // <div className='Category'>
  30. // {children}
  31. // </div>
  32. // const SortableList = SortableContainer(MyTracks)
  33. // // const CMyTracks = connect(state => ({playlist: state.promise.playlistById?.payload || []}))(MyTracks)
  34. //
  35. //
  36. // export const MyPlaylistTracks = ({match:{params:{_id}}}) =>
  37. // <>
  38. // <CPlaylistDropZone >
  39. // <CPreloaded promiseName='playlistById'>
  40. // <CSortableComponent />
  41. // </CPreloaded>
  42. // </CPlaylistDropZone >
  43. // </>
  44. //
  45. //
  46. // function SortableComponent({tracks=[]}) {
  47. // const [state, setState] = useState(tracks)
  48. // useEffect(() => {
  49. // setState (tracks)
  50. // },[tracks])
  51. // const onSortEnd = ({oldIndex, newIndex}) => {
  52. // setState((state) => (arrayMoveImmutable(state, oldIndex, newIndex)));
  53. // };
  54. //
  55. // return <SortableList tracks={tracks} onSortEnd={onSortEnd}>
  56. // {state.map((value, index) => <SortableItem key={`item-${value}`} index={index} track={value}/>)}
  57. // {/*{console.log(state)}*/}
  58. // </SortableList>;
  59. // }
  60. //
  61. // const CSortableComponent = connect(state => ({tracks: state.promise.playlistById?.payload?.tracks || []}))(SortableComponent)