import React, { Component, PropTypes } from "react"; import CSSModules from "react-css-modules"; import { defineMessages, FormattedMessage, injectIntl, intlShape } from "react-intl"; import FontAwesome from "react-fontawesome"; import Immutable from "immutable"; import { formatLength, messagesMap } from "../utils"; import commonMessages from "../locales/messagesDescriptors/common"; import css from "../styles/Album.scss"; const albumMessages = defineMessages(messagesMap(Array.concat([], commonMessages))); class AlbumTrackRowCSSIntl extends Component { render () { const { formatMessage } = this.props.intl; const length = formatLength(this.props.track.get("time")); return ( {this.props.track.get("track")} {this.props.track.get("name")} {length} ); } } AlbumTrackRowCSSIntl.propTypes = { playAction: PropTypes.func.isRequired, track: PropTypes.instanceOf(Immutable.Map).isRequired, intl: intlShape.isRequired }; export let AlbumTrackRow = injectIntl(CSSModules(AlbumTrackRowCSSIntl, css)); class AlbumTracksTableCSS extends Component { render () { let rows = []; const playAction = this.props.playAction; this.props.tracks.forEach(function (item) { rows.push(); }); return ( {rows}
); } } AlbumTracksTableCSS.propTypes = { playAction: PropTypes.func.isRequired, tracks: PropTypes.instanceOf(Immutable.List).isRequired }; export let AlbumTracksTable = CSSModules(AlbumTracksTableCSS, css); class AlbumRowCSS extends Component { render () { return (

{this.props.album.get("name")}

{this.props.album.get("name")}

{ this.props.songs.size > 0 ? : null }
); } } AlbumRowCSS.propTypes = { playAction: PropTypes.func.isRequired, album: PropTypes.instanceOf(Immutable.Map).isRequired, songs: PropTypes.instanceOf(Immutable.List).isRequired }; export let AlbumRow = CSSModules(AlbumRowCSS, css); export default class Album extends Component { render () { return ( ); } } Album.propTypes = { album: PropTypes.instanceOf(Immutable.Map).isRequired, songs: PropTypes.instanceOf(Immutable.List).isRequired };