diff --git a/src/js/App.js b/src/js/App.js
index 891f720d..d8959337 100755
--- a/src/js/App.js
+++ b/src/js/App.js
@@ -16,7 +16,7 @@ import ErrorMessage from './components/ErrorMessage';
import Stream from './components/Stream';
import Album from './views/Album';
-import Artist from './views/Artist';
+import Artist from './views/Artist/Artist';
import Playlist from './views/Playlist';
import User from './views/User';
import Track from './views/Track';
@@ -26,19 +26,8 @@ import QueueHistory from './views/QueueHistory';
import Debug from './views/Debug';
import Search from './views/Search';
import Settings from './views/Settings';
-
-import DiscoverRecommendations from './views/Discover/DiscoverRecommendations';
-import DiscoverFeatured from './views/Discover/DiscoverFeatured';
-import DiscoverCategories from './views/Discover/DiscoverCategories';
-import DiscoverCategory from './views/Discover/DiscoverCategory';
-import DiscoverNewReleases from './views/Discover/DiscoverNewReleases';
-
-import LibraryArtists from './views/Library/LibraryArtists';
-import LibraryAlbums from './views/Library/LibraryAlbums';
-import LibraryTracks from './views/Library/LibraryTracks';
-import LibraryPlaylists from './views/Library/LibraryPlaylists';
-import LibraryBrowse from './views/Library/LibraryBrowse';
-import LibraryBrowseDirectory from './views/Library/LibraryBrowseDirectory';
+import Discover from './views/Discover/Discover';
+import Library from './views/Library/Library';
import EditPlaylist from './views/modals/EditPlaylist';
import CreatePlaylist from './views/modals/CreatePlaylist';
@@ -328,60 +317,13 @@ const App = () => {
-
-
-
-
-
-
-
-
-
diff --git a/src/js/views/Artist.js b/src/js/views/Artist/Artist.js
similarity index 82%
rename from src/js/views/Artist.js
rename to src/js/views/Artist/Artist.js
index d2a39592..e3875da2 100755
--- a/src/js/views/Artist.js
+++ b/src/js/views/Artist/Artist.js
@@ -2,28 +2,28 @@ import React, { useState, useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { bindActionCreators } from 'redux';
import { Route, Switch, useParams, useHistory } from 'react-router-dom';
-import ErrorMessage from '../components/ErrorMessage';
-import Link from '../components/Link';
-import Thumbnail from '../components/Thumbnail';
-import Parallax from '../components/Parallax';
-import FollowButton from '../components/Fields/FollowButton';
-import ContextMenuTrigger from '../components/ContextMenuTrigger';
-import About from './Artist/About';
-import Overview from './Artist/Overview';
-import Tracks from './Artist/Tracks';
-import Related from './Artist/Related';
-import Loader from '../components/Loader';
-import * as coreActions from '../services/core/actions';
-import * as uiActions from '../services/ui/actions';
-import * as mopidyActions from '../services/mopidy/actions';
+import ErrorMessage from '../../components/ErrorMessage';
+import Link from '../../components/Link';
+import Thumbnail from '../../components/Thumbnail';
+import Parallax from '../../components/Parallax';
+import FollowButton from '../../components/Fields/FollowButton';
+import ContextMenuTrigger from '../../components/ContextMenuTrigger';
+import About from './About';
+import Overview from './Overview';
+import Tracks from './Tracks';
+import Related from './Related';
+import Loader from '../../components/Loader';
+import * as coreActions from '../../services/core/actions';
+import * as uiActions from '../../services/ui/actions';
+import * as mopidyActions from '../../services/mopidy/actions';
import {
uriSource,
-} from '../util/helpers';
-import { encodeUri, decodeUri } from '../util/format';
-import { arrayOf } from '../util/arrays';
-import { i18n, I18n } from '../locale';
-import Button from '../components/Button';
-import { makeItemSelector } from '../util/selectors';
+} from '../../util/helpers';
+import { encodeUri, decodeUri } from '../../util/format';
+import { arrayOf } from '../../util/arrays';
+import { i18n, I18n } from '../../locale';
+import Button from '../../components/Button';
+import { makeItemSelector } from '../../util/selectors';
const Artist = () => {
const history = useHistory();
diff --git a/src/js/views/Discover/DiscoverCategories.js b/src/js/views/Discover/Categories.js
similarity index 93%
rename from src/js/views/Discover/DiscoverCategories.js
rename to src/js/views/Discover/Categories.js
index 6d32dd5b..9101c21b 100755
--- a/src/js/views/Discover/DiscoverCategories.js
+++ b/src/js/views/Discover/Categories.js
@@ -14,7 +14,7 @@ import { i18n, I18n } from '../../locale';
import { indexToArray, applyFilter } from '../../util/arrays';
import { makeLoadingSelector } from '../../util/selectors';
-const DiscoverCategories = ({
+const Categories = ({
loading,
categories: categoriesProp,
spotifyActions: {
@@ -99,4 +99,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(DiscoverCategories);
+export default connect(mapStateToProps, mapDispatchToProps)(Categories);
diff --git a/src/js/views/Discover/DiscoverCategory.js b/src/js/views/Discover/Category.js
similarity index 94%
rename from src/js/views/Discover/DiscoverCategory.js
rename to src/js/views/Discover/Category.js
index 5be4df50..09017738 100755
--- a/src/js/views/Discover/DiscoverCategory.js
+++ b/src/js/views/Discover/Category.js
@@ -23,7 +23,7 @@ import { decodeUri } from '../../util/format';
const SORT_KEY = 'discover_category';
-const DiscoverCategory = ({
+const Category = ({
uri,
category,
loading,
@@ -170,4 +170,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(DiscoverCategory);
+export default connect(mapStateToProps, mapDispatchToProps)(Category);
diff --git a/src/js/views/Discover/Discover.js b/src/js/views/Discover/Discover.js
new file mode 100644
index 00000000..9a627a0e
--- /dev/null
+++ b/src/js/views/Discover/Discover.js
@@ -0,0 +1,39 @@
+import React from 'react';
+import { Route, Switch } from 'react-router-dom';
+import Recommendations from './Recommendations';
+import Featured from './Featured';
+import Categories from './Categories';
+import Category from './Category';
+import NewReleases from './NewReleases';
+
+export default () => {
+ return (
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/js/views/Discover/DiscoverFeatured.js b/src/js/views/Discover/Featured.js
similarity index 92%
rename from src/js/views/Discover/DiscoverFeatured.js
rename to src/js/views/Discover/Featured.js
index a2b38bbe..526eca84 100755
--- a/src/js/views/Discover/DiscoverFeatured.js
+++ b/src/js/views/Discover/Featured.js
@@ -13,7 +13,7 @@ import Button from '../../components/Button';
import { indexToArray } from '../../util/arrays';
import { makeLoadingSelector } from '../../util/selectors';
-class DiscoverFeatured extends React.Component {
+class Featured extends React.Component {
componentDidMount() {
const {
uris,
@@ -119,4 +119,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(DiscoverFeatured);
+export default connect(mapStateToProps, mapDispatchToProps)(Featured);
diff --git a/src/js/views/Discover/DiscoverNewReleases.js b/src/js/views/Discover/NewReleases.js
similarity index 92%
rename from src/js/views/Discover/DiscoverNewReleases.js
rename to src/js/views/Discover/NewReleases.js
index 18c90363..3161747c 100755
--- a/src/js/views/Discover/DiscoverNewReleases.js
+++ b/src/js/views/Discover/NewReleases.js
@@ -17,7 +17,7 @@ import {
makeLoadingSelector,
} from '../../util/selectors';
-class DiscoverNewReleases extends React.Component {
+class NewReleases extends React.Component {
componentDidMount() {
const {
new_releases,
@@ -171,4 +171,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(DiscoverNewReleases);
+export default connect(mapStateToProps, mapDispatchToProps)(NewReleases);
diff --git a/src/js/views/Discover/DiscoverRecommendations.js b/src/js/views/Discover/Recommendations.js
similarity index 95%
rename from src/js/views/Discover/DiscoverRecommendations.js
rename to src/js/views/Discover/Recommendations.js
index 45f87427..7691cdb6 100755
--- a/src/js/views/Discover/DiscoverRecommendations.js
+++ b/src/js/views/Discover/Recommendations.js
@@ -28,7 +28,7 @@ import { i18n, I18n } from '../../locale';
import Button from '../../components/Button';
import { decodeUri, encodeUri } from '../../util/format';
-class Discover extends React.Component {
+class Recommendations extends React.Component {
constructor(props) {
super(props);
@@ -588,4 +588,4 @@ const mapDispatchToProps = (dispatch) => ({
coreActions: bindActionCreators(coreActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(Discover);
+export default connect(mapStateToProps, mapDispatchToProps)(Recommendations);
diff --git a/src/js/views/Library/LibraryAlbums.js b/src/js/views/Library/Albums.js
similarity index 94%
rename from src/js/views/Library/LibraryAlbums.js
rename to src/js/views/Library/Albums.js
index 507dde29..1e0ff0a0 100755
--- a/src/js/views/Library/LibraryAlbums.js
+++ b/src/js/views/Library/Albums.js
@@ -29,7 +29,7 @@ const processKeys = [
'SPOTIFY_GET_LIBRARY_ALBUMS',
];
-class LibraryAlbums extends React.Component {
+class Albums extends React.Component {
constructor(props) {
super(props);
@@ -305,4 +305,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(LibraryAlbums);
+export default connect(mapStateToProps, mapDispatchToProps)(Albums);
diff --git a/src/js/views/Library/LibraryArtists.js b/src/js/views/Library/Artists.js
similarity index 94%
rename from src/js/views/Library/LibraryArtists.js
rename to src/js/views/Library/Artists.js
index 29066f5b..da61feda 100755
--- a/src/js/views/Library/LibraryArtists.js
+++ b/src/js/views/Library/Artists.js
@@ -27,7 +27,7 @@ const processKeys = [
'SPOTIFY_GET_LIBRARY_ARTISTS',
];
-class LibraryArtists extends React.Component {
+class Artists extends React.Component {
constructor(props) {
super(props);
@@ -284,4 +284,4 @@ const mapDispatchToProps = (dispatch) => ({
coreActions: bindActionCreators(coreActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(LibraryArtists);
+export default connect(mapStateToProps, mapDispatchToProps)(Artists);
diff --git a/src/js/views/Library/LibraryBrowse.js b/src/js/views/Library/Browse.js
similarity index 94%
rename from src/js/views/Library/LibraryBrowse.js
rename to src/js/views/Library/Browse.js
index 0f03801f..c8f0a326 100755
--- a/src/js/views/Library/LibraryBrowse.js
+++ b/src/js/views/Library/Browse.js
@@ -11,7 +11,7 @@ import { formatImages, encodeUri } from '../../util/format';
import { I18n, i18n } from '../../locale';
import { makeLoadingSelector } from '../../util/selectors';
-class LibraryBrowse extends React.Component {
+class Browse extends React.Component {
componentDidMount() {
this.loadDirectory();
this.props.uiActions.setWindowTitle(i18n('library.browse.title'));
@@ -153,4 +153,4 @@ const mapDispatchToProps = (dispatch) => ({
mopidyActions: bindActionCreators(mopidyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(LibraryBrowse);
+export default connect(mapStateToProps, mapDispatchToProps)(Browse);
diff --git a/src/js/views/Library/LibraryBrowseDirectory.js b/src/js/views/Library/BrowseDirectory.js
similarity index 94%
rename from src/js/views/Library/LibraryBrowseDirectory.js
rename to src/js/views/Library/BrowseDirectory.js
index f55a55d9..009671be 100755
--- a/src/js/views/Library/LibraryBrowseDirectory.js
+++ b/src/js/views/Library/BrowseDirectory.js
@@ -64,7 +64,7 @@ const Subdirectories = ({ items, view }) => {
);
};
-class LibraryBrowseDirectory extends React.Component {
+class BrowseDirectory extends React.Component {
constructor(props) {
super(props);
@@ -269,4 +269,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(LibraryBrowseDirectory);
+export default connect(mapStateToProps, mapDispatchToProps)(BrowseDirectory);
diff --git a/src/js/views/Library/Library.js b/src/js/views/Library/Library.js
new file mode 100644
index 00000000..b3f8ad68
--- /dev/null
+++ b/src/js/views/Library/Library.js
@@ -0,0 +1,45 @@
+import React from 'react';
+import { Route, Switch } from 'react-router-dom';
+import Artists from './Artists';
+import Albums from './Albums';
+import Tracks from './Tracks';
+import Playlists from './Playlists';
+import Browse from './Browse';
+import BrowseDirectory from './BrowseDirectory';
+
+export default () => {
+ return (
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/js/views/Library/LibraryPlaylists.js b/src/js/views/Library/Playlists.js
similarity index 94%
rename from src/js/views/Library/LibraryPlaylists.js
rename to src/js/views/Library/Playlists.js
index 28c210e5..fd22ad6e 100755
--- a/src/js/views/Library/LibraryPlaylists.js
+++ b/src/js/views/Library/Playlists.js
@@ -29,7 +29,7 @@ const processKeys = [
'SPOTIFY_GET_LIBRARY_PLAYLISTS',
];
-class LibraryPlaylists extends React.Component {
+class Playlists extends React.Component {
constructor(props) {
super(props);
@@ -324,4 +324,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(LibraryPlaylists);
+export default connect(mapStateToProps, mapDispatchToProps)(Playlists);
diff --git a/src/js/views/Library/LibraryTracks.js b/src/js/views/Library/Tracks.js
similarity index 94%
rename from src/js/views/Library/LibraryTracks.js
rename to src/js/views/Library/Tracks.js
index faae5353..4a042a81 100755
--- a/src/js/views/Library/LibraryTracks.js
+++ b/src/js/views/Library/Tracks.js
@@ -29,7 +29,7 @@ const processKeys = [
'SPOTIFY_GET_LIBRARY_TRACKS',
];
-class LibraryTracks extends React.Component {
+class Tracks extends React.Component {
constructor(props) {
super(props);
@@ -306,4 +306,4 @@ const mapDispatchToProps = (dispatch) => ({
spotifyActions: bindActionCreators(spotifyActions, dispatch),
});
-export default connect(mapStateToProps, mapDispatchToProps)(LibraryTracks);
+export default connect(mapStateToProps, mapDispatchToProps)(Tracks);