import React, { PropTypes } from 'react'
import { connect } from 'react-redux'
import { hashHistory, Link } from 'react-router'
import { bindActionCreators } from 'redux'
import FontAwesome from 'react-fontawesome'
import Icon from '../components/Icon'
import Parallax from '../components/Parallax'
import TrackList from '../components/TrackList'
import Track from '../components/Track'
import Dater from '../components/Dater'
import ArtistSentence from '../components/ArtistSentence'
import Thumbnail from '../components/Thumbnail'
import Header from '../components/Header'
import URILink from '../components/URILink'
import * as helpers from '../helpers'
import * as uiActions from '../services/ui/actions'
import * as pusherActions from '../services/pusher/actions'
import * as spotifyActions from '../services/spotify/actions'
import * as mopidyActions from '../services/mopidy/actions'
class Queue extends React.Component{
constructor(props){
super(props)
}
removeTracks(track_indexes){
var tlids = [];
for (var i = 0; i < track_indexes.length; i++){
var track = this.props.queue[track_indexes[i]];
if (track.tlid !== undefined){
tlids.push(track.tlid);
}
}
if (tlids.length > 0){
this.props.mopidyActions.removeTracks(tlids);
}
}
playTrack(track){
this.props.mopidyActions.changeTrack(track.tlid);
}
playTracks(tracks){
this.props.mopidyActions.changeTrack(tracks[0].tlid);
}
reorderTracks(indexes, index){
this.props.mopidyActions.reorderTracklist(indexes, index);
}
renderQueueStats(){
var total_time = 0
return (
)
}
renderArtwork(image){
if (!image){
return (
{this.props.radio_enabled ? : null}
)
}
var uri = null
if (this.props.current_track.album && this.props.current_track.album.uri){
uri = this.props.current_track.album.uri;
}
return (
{this.props.radio_enabled ? : null}
)
}
render(){
var current_track = null;
var tracks = [];
if (this.props.queue && this.props.tracks){
for (var i = 0; i < this.props.queue.length; i++){
var track = this.props.queue[i];
// If we have the track in our index, merge it in.
// We prioritise queue track over index track as queue has unique data, like which track
// is playing and tlids.
if (this.props.tracks.hasOwnProperty(track.uri)){
track = Object.assign(
{},
this.props.tracks[track.uri],
track,
{
playing: (this.props.current_track && this.props.current_track.tlid == track.tlid)
}
);
}
// Now merge in our queue metadata
if (this.props.queue_metadata["tlid_"+track.tlid] !== undefined){
track = Object.assign(
{},
track,
this.props.queue_metadata["tlid_"+track.tlid]
);
}
// Siphon off this track if it's a full representation of our current track (by tlid)
if (this.props.current_track && this.props.current_track.uri == track.uri){
current_track = track;
}
// Now add our compiled track for our tracklist
tracks.push(track);
}
}
var current_track_image = null;
if (current_track){
if (current_track.images !== undefined && current_track.images){
current_track_image = helpers.sizedImages(current_track.images).large;
}
}
var options = (
{this.props.spotify_enabled ? : null}
)
return (