import React, { Component, PropTypes } from "react"; import CSSModules from "react-css-modules"; import { defineMessages, injectIntl, intlShape, FormattedMessage } from "react-intl"; import FontAwesome from "react-fontawesome"; import { messagesMap } from "../../utils"; import css from "../../styles/elements/WebPlayer.scss"; import commonMessages from "../../locales/messagesDescriptors/common"; import messages from "../../locales/messagesDescriptors/elements/WebPlayer"; const webplayerMessages = defineMessages(messagesMap(Array.concat([], commonMessages, messages))); class WebPlayerCSSIntl extends Component { constructor (props) { super(props); this.artOpacityHandler = this.artOpacityHandler.bind(this); } artOpacityHandler (ev) { if (ev.type == "mouseover") { this.refs.art.style.opacity = "1"; } else { this.refs.art.style.opacity = "0.75"; } } render () { const { formatMessage } = this.props.intl; const playPause = this.props.isPlaying ? "pause" : "play"; const randomBtnStyles = ["randomBtn"]; const repeatBtnStyles = ["repeatBtn"]; if (this.props.isRandom) { randomBtnStyles.push("active"); } if (this.props.isRepeat) { repeatBtnStyles.push("active"); } return (

{this.props.song.title}

{this.props.song.artist}

); } } WebPlayerCSSIntl.propTypes = { song: PropTypes.object.isRequired, isPlaying: PropTypes.bool.isRequired, isRandom: PropTypes.bool.isRequired, isRepeat: PropTypes.bool.isRequired, intl: intlShape.isRequired }; export default injectIntl(CSSModules(WebPlayerCSSIntl, css, { allowMultiple: true }));