Removing local artists

This commit is contained in:
James Barnsley
2017-08-13 21:04:59 +12:00
parent 45dfe25172
commit 0fabc8daa9
6 changed files with 20 additions and 137 deletions

View File

@ -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
}

View File

@ -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>
)
}

View File

@ -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>

View File

@ -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]

View File

@ -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)

View File

@ -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;