mirror of
https://github.com/captbaritone/webamp.git
synced 2026-07-25 19:13:54 +00:00
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import React from "react";
|
|
import { connect } from "react-redux";
|
|
|
|
import { getTimeStr } from "../../utils";
|
|
import { getVisibleTrackIds } from "../../selectors";
|
|
import TrackCell from "./TrackCell";
|
|
|
|
const TrackList = props => {
|
|
const { trackIds, tracks } = props;
|
|
return (
|
|
<div className="playlist-tracks">
|
|
<div className="playlist-track-numbers">
|
|
{trackIds.map((id, i) => (
|
|
<TrackCell key={id} id={id}>
|
|
{`${i + 1}.`}
|
|
</TrackCell>
|
|
))}
|
|
</div>
|
|
<div className="playlist-track-titles">
|
|
{trackIds.map(id => (
|
|
<TrackCell key={id} id={id}>
|
|
{tracks[id].title}
|
|
</TrackCell>
|
|
))}
|
|
</div>
|
|
<div className="playlist-track-durations">
|
|
{trackIds.map(id => (
|
|
<TrackCell key={id} id={id}>
|
|
{getTimeStr(tracks[id].duration)}
|
|
</TrackCell>
|
|
))}
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
const mapDispatchToProps = () => ({});
|
|
|
|
const mapStateToProps = state => ({
|
|
trackIds: getVisibleTrackIds(state),
|
|
tracks: state.tracks
|
|
});
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(TrackList);
|