Removing local artists
This commit is contained in:
@ -335,8 +335,13 @@ class ContextMenu extends React.Component{
|
||||
setPlaylistSubmenu(expanded = !this.state.submenu_expanded){
|
||||
this.setState({submenu_expanded: expanded})
|
||||
|
||||
if (expanded && !this.props.library_playlists){
|
||||
this.props.coreActions.getLibraryPlaylists()
|
||||
if (expanded){
|
||||
if (!this.props.spotify_library_playlists){
|
||||
this.props.spotifyActions.getLibraryPlaylists()
|
||||
}
|
||||
if (!this.props.mopidy_library_playlists){
|
||||
this.props.mopidyActions.getLibraryPlaylists()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -586,9 +591,12 @@ const mapStateToProps = (state, ownProps) => {
|
||||
menu: state.ui.context_menu,
|
||||
current_track: state.core.current_track,
|
||||
current_tracklist: state.core.current_tracklist,
|
||||
library_artists: state.core.library_artists,
|
||||
library_albums: state.core.library_albums,
|
||||
library_playlists: state.core.library_playlists,
|
||||
spotify_library_playlists: state.spotify.library_playlists,
|
||||
mopidy_library_playlists: state.mopidy.library_playlists,
|
||||
spotify_library_artists: state.spotify.library_artists,
|
||||
mopidy_library_artists: state.mopidy.library_artists,
|
||||
spotify_library_albums: state.spotify.library_albums,
|
||||
mopidy_library_albums: state.mopidy.library_albums,
|
||||
playlists: state.core.playlists,
|
||||
spotify_authorized: state.spotify.authorization
|
||||
}
|
||||
|
||||
@ -56,8 +56,8 @@ export default class Notifications extends React.Component{
|
||||
items.push(
|
||||
<div className="process notification" key={key}>
|
||||
<div className="loader"></div>
|
||||
{ processes[key].message }
|
||||
<FontAwesome name="close" className="close-button" onClick={ e => this.props.uiActions.cancelProcess(key) } />
|
||||
{processes[key].message}
|
||||
<FontAwesome name="close" className="close-button" onClick={e => this.props.uiActions.cancelProcess(key)} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
@ -34,7 +34,6 @@ 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 LibraryLocalArtists from './views/library/LibraryLocalArtists'
|
||||
|
||||
// setup our analytics tracking
|
||||
ReactGA.initialize('UA-64701652-3');
|
||||
@ -74,7 +73,6 @@ ReactDOM.render(
|
||||
<Route path="library/albums" component={LibraryAlbums} />
|
||||
<Route path="library/tracks" component={LibraryTracks} />
|
||||
<Route path="library/playlists" component={LibraryPlaylists} />
|
||||
<Route path="library/browse/local-artists" component={LibraryLocalArtists} />
|
||||
<Route path="library/browse(/:uri)" component={LibraryBrowse} />
|
||||
|
||||
</Route>
|
||||
|
||||
@ -20,7 +20,6 @@ class LibraryBrowse extends React.Component{
|
||||
super(props);
|
||||
}
|
||||
|
||||
// on render
|
||||
componentDidMount(){
|
||||
this.loadDirectory()
|
||||
}
|
||||
@ -144,14 +143,7 @@ class LibraryBrowse extends React.Component{
|
||||
|
||||
} else {
|
||||
|
||||
var grid_items = [
|
||||
{
|
||||
name: 'Local artists',
|
||||
link: global.baseURL+'library/browse/local-artists',
|
||||
icons: ['assets/backgrounds/browse-artists.jpg']
|
||||
}
|
||||
]
|
||||
|
||||
var grid_items = []
|
||||
if (this.props.directory){
|
||||
for (var i = 0; i < this.props.directory.length; i++){
|
||||
var directory = this.props.directory[i]
|
||||
|
||||
@ -1,110 +0,0 @@
|
||||
|
||||
import React, { PropTypes } from 'react'
|
||||
import { connect } from 'react-redux'
|
||||
import { bindActionCreators } from 'redux'
|
||||
|
||||
import Header from '../../components/Header'
|
||||
import List from '../../components/List'
|
||||
|
||||
import * as helpers from '../../helpers'
|
||||
import * as uiActions from '../../services/ui/actions'
|
||||
import * as mopidyActions from '../../services/mopidy/actions'
|
||||
import * as spotifyActions from '../../services/spotify/actions'
|
||||
|
||||
class LibraryLocalArtists extends React.Component{
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
}
|
||||
|
||||
// on render
|
||||
componentDidMount(){
|
||||
this.loadArtists()
|
||||
}
|
||||
|
||||
componentWillReceiveProps( nextProps ){
|
||||
if( !this.props.mopidy_connected && nextProps.mopidy_connected ){
|
||||
this.loadArtists(nextProps);
|
||||
}
|
||||
}
|
||||
|
||||
handleContextMenu(e,item){
|
||||
var data = {
|
||||
e: e,
|
||||
context: 'artist',
|
||||
uris: [item.uri],
|
||||
items: [item]
|
||||
}
|
||||
this.props.uiActions.showContextMenu(data)
|
||||
}
|
||||
|
||||
loadArtists(props = this.props){
|
||||
if( props.mopidy_connected && !props.local_artists ){
|
||||
this.props.mopidyActions.getLibraryArtists();
|
||||
}
|
||||
}
|
||||
|
||||
render(){
|
||||
var artists = []
|
||||
if (this.props.artists && this.props.local_artists){
|
||||
for (var i = 0; i < this.props.local_artists.length; i++){
|
||||
var uri = this.props.local_artists[i]
|
||||
if (this.props.artists.hasOwnProperty(uri)){
|
||||
artists.push(this.props.artists[uri])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (artists.length <= 0 && helpers.isLoading(this.props.load_queue,['mopidy_lookup','mopidy_browse'])){
|
||||
return (
|
||||
<div className="view library-local-view">
|
||||
<Header icon="music" title="Local artists" />
|
||||
<div className="body-loader loading">
|
||||
<div className="loader"></div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="view library-local-view">
|
||||
<Header icon="music" title="Local artists" />
|
||||
<section className="content-wrapper">
|
||||
<List
|
||||
columns={[{ name: 'name', width: '100'}]}
|
||||
rows={artists}
|
||||
link_prefix={global.baseURL+"artist/"}
|
||||
className="library-local-artist-list"
|
||||
handleContextMenu={(e,item) => this.handleContextMenu(e,item)}
|
||||
/>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Export our component
|
||||
*
|
||||
* We also integrate our global store, using connect()
|
||||
**/
|
||||
|
||||
const mapStateToProps = (state, ownProps) => {
|
||||
return {
|
||||
load_queue: state.ui.load_queue,
|
||||
mopidy_connected: state.mopidy.connected,
|
||||
local_artists: state.core.local_artists,
|
||||
artists: state.core.artists
|
||||
}
|
||||
}
|
||||
|
||||
const mapDispatchToProps = (dispatch) => {
|
||||
return {
|
||||
uiActions: bindActionCreators(uiActions, dispatch),
|
||||
mopidyActions: bindActionCreators(mopidyActions, dispatch),
|
||||
spotifyActions: bindActionCreators(spotifyActions, dispatch)
|
||||
}
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(LibraryLocalArtists)
|
||||
@ -116,15 +116,9 @@ $bp_shallow: 650px;
|
||||
}
|
||||
|
||||
@keyframes slideloader {
|
||||
0% {
|
||||
transform: translateX(-100%);
|
||||
}
|
||||
50% {
|
||||
transform: translateX(0);
|
||||
}
|
||||
100% {
|
||||
transform: translateX(+100%);
|
||||
}
|
||||
0% { left: 0%; right: 100%; }
|
||||
50% { left: 0%; right: 0%; }
|
||||
100% { left: 100%; right: 0%; }
|
||||
}
|
||||
|
||||
|
||||
@ -204,6 +198,7 @@ $bp_shallow: 650px;
|
||||
|
||||
&:before {
|
||||
@include animate();
|
||||
border-radius: $radius;
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
|
||||
Reference in New Issue
Block a user