import React from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Header from '../../components/Header'; import Icon from '../../components/Icon'; import PlaylistGrid from '../../components/PlaylistGrid'; import LazyLoadListener from '../../components/LazyLoadListener'; import Loader from '../../components/Loader'; import * as uiActions from '../../services/ui/actions'; import * as spotifyActions from '../../services/spotify/actions'; import { isLoading } from '../../util/helpers'; import { collate } from '../../util/format'; class DiscoverCategory extends React.Component { componentDidMount() { this.loadCategory(); this.setWindowTitle(); } componentWillReceiveProps(nextProps) { if (nextProps.match.params.id != this.props.match.params.id) { this.loadCategory(); } if (!this.props.category && nextProps.category) { this.setWindowTitle(nextProps.category); } } setWindowTitle(category = this.props.category) { if (category) { this.props.uiActions.setWindowTitle(category.name); } else { this.props.uiActions.setWindowTitle('Genre / Mood'); } } loadCategory() { if (!this.props.category) { this.props.spotifyActions.getCategory(this.props.match.params.id); } if (!this.props.category.playlists_uris) { this.props.spotifyActions.getCategoryPlaylists(this.props.match.params.id); } } loadMore() { this.props.spotifyActions.getMore( this.props.category.playlists_more, null, { type: 'SPOTIFY_CATEGORY_PLAYLISTS_LOADED_MORE', uri: `category:${this.props.match.params.id}`, }, ); } render() { if (isLoading(this.props.load_queue, ['spotify_browse/categories/'])) { return (