Tracks.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {connect} from 'react-redux';
  2. import {actionFullSetTrack, actionFullPlay} from '../store/playerReducer';
  3. import { store } from '../store/store';
  4. let i = 1;
  5. export let audio = new Audio();
  6. const Track = ({track: {name, file, id3, id} = {} }, key) =>
  7. <tr>
  8. <th scope="row">{i++}</th>
  9. <td>
  10. <div onClick={async () => {
  11. audio.src = `http://player-api/storage/tracks/${file}`;
  12. store.dispatch(actionFullSetTrack({name, file, id3, id}));
  13. store.dispatch(actionFullPlay());
  14. }}>
  15. {name}
  16. </div>
  17. </td>
  18. <td>
  19. <span>{id3.artist}</span>
  20. </td>
  21. <td>{id3.getAlbum}</td>
  22. </tr>
  23. const TracksAll = ({tracks=[]}) =>
  24. <table className="table table-dark table-striped table-dark table-hover">
  25. <thead>
  26. <tr>
  27. <th scope="col">#</th>
  28. <th scope="col">Track name</th>
  29. <th scope="col">Artist</th>
  30. <th scope="col">Album</th>
  31. </tr>
  32. </thead>
  33. <tbody>
  34. {tracks.map((tracks, i) => <Track key={i} track={tracks}/>)}
  35. </tbody>
  36. </table>
  37. export const СAllTracks = connect(state => ({tracks: state.promise.plstById?.payload?.tracks || []}), )(TracksAll);