import React from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Header from '../../components/Header'; import GridItem from '../../components/GridItem'; import Icon from '../../components/Icon'; import ErrorBoundary from '../../components/ErrorBoundary'; import * as uiActions from '../../services/ui/actions'; import * as mopidyActions from '../../services/mopidy/actions'; import { formatImages } from '../../util/format'; class LibraryBrowse extends React.Component { componentDidMount() { this.loadDirectory(); this.props.uiActions.setWindowTitle('Browse'); } componentWillReceiveProps(nextProps) { // mopidy goes online if (!this.props.mopidy_connected && nextProps.mopidy_connected) { this.loadDirectory(nextProps); } } loadDirectory(props = this.props) { if (props.mopidy_connected) { this.props.mopidyActions.getDirectory(null); } } render() { const grid_items = []; if (this.props.directory) { for (const subdirectory of this.props.directory.subdirectories) { switch (subdirectory.name) { case 'Dirble': subdirectory.icons = ['/iris/assets/backgrounds/browse-dirble.jpg']; break; case 'Files': subdirectory.icons = ['/iris/assets/backgrounds/browse-folders.jpg']; break; case 'Local media': subdirectory.icons = ['/iris/assets/backgrounds/browse-folders.jpg']; break; case 'Spotify': case 'Spotify Browse': case 'Spotify Web Browse': subdirectory.icons = ['/iris/assets/backgrounds/browse-spotify.jpg']; break; case 'Spotify Tunigo': case 'Tunigo': subdirectory.icons = ['/iris/assets/backgrounds/browse-tunigo.jpg']; break; case 'TuneIn': subdirectory.icons = ['/iris/assets/backgrounds/browse-tunein.jpg']; break; case 'SoundCloud': subdirectory.icons = ['/iris/assets/backgrounds/browse-soundcloud.jpg']; break; case 'iTunes Store: Podcasts': subdirectory.icons = ['/iris/assets/backgrounds/browse-itunes.jpg']; break; case 'Soma FM': subdirectory.icons = ['/iris/assets/backgrounds/browse-somafm.jpg']; break; default: subdirectory.icons = ['/iris/assets/backgrounds/browse-default.jpg']; } grid_items.push({ name: subdirectory.name, link: `/library/browse/${encodeURIComponent(subdirectory.uri)}`, icons: formatImages(subdirectory.icons), }); } } return (