import * as React from "react"; import { connect } from "react-redux"; import * as Selectors from "../../selectors"; import { AppState, PlaylistTrack } from "../../types"; import * as Utils from "../../utils"; import * as FileUtils from "../../fileUtils"; import LibraryButton from "./LibraryButton"; import LibraryTable from "./LibraryTable"; interface StateProps { tracks: PlaylistTrack[]; filterTracks: (query: string) => PlaylistTrack[]; } interface State { filter: string; } class TracksTable extends React.Component { constructor(props: StateProps) { super(props); this.state = { filter: "" }; } render() { return (
Search: this.setState({ filter: e.target.value })} />
{ return [ track.artist, track.title, track.album, Utils.getTimeStr(track.duration), 1, "Primus", 2001, track.url == null ? track.defaultName : FileUtils.filenameFromUrl(track.url), ]; })} widths={[100, 100, 100, 100, 100, 100, 100, 100]} />
Play Enqueue Play all Enqueue all 1 item [3:25]
); } } const mapStateToProps = (state: AppState): StateProps => { return { tracks: Object.values(Selectors.getTracks(state)), filterTracks: Selectors.getTracksMatchingFilter(state), }; }; export default connect(mapStateToProps)(TracksTable);