import React, { PropTypes } from 'react' import { connect } from 'react-redux' import { bindActionCreators } from 'redux' import * as helpers from '../../helpers' import Icon from '../Icon' import AddToPlaylistModal from './AddToPlaylistModal' import AddToQueueModal from './AddToQueueModal' import CreatePlaylistModal from './CreatePlaylistModal' import EditPlaylistModal from './EditPlaylistModal' import EditRadioModal from './EditRadioModal' import ImageZoomModal from './ImageZoomModal' import KioskModeModal from './KioskModeModal' import SearchURISchemesModal from './SearchURISchemesModal' import VolumeModal from './VolumeModal' import AuthorizationModal_Send from './AuthorizationModal_Send' import AuthorizationModal_Receive from './AuthorizationModal_Receive' import TrackInfoModal from './TrackInfoModal' import * as coreActions from '../../services/core/actions' import * as uiActions from '../../services/ui/actions' import * as mopidyActions from '../../services/mopidy/actions' import * as spotifyActions from '../../services/spotify/actions' import * as pusherActions from '../../services/pusher/actions' import * as geniusActions from '../../services/genius/actions' class Modal extends React.Component{ constructor(props){ super(props) } componentWillReceiveProps( nextProps ){ if (nextProps.modal){ $('body').addClass('modal-open') } else { $('body').removeClass('modal-open') } } render(){ if( !this.props.modal ) return null; return (
this.props.uiActions.closeModal() }>
{ this.props.modal.name == 'add_to_playlist' ? : null } { this.props.modal.name == 'add_to_queue' ? : null } { this.props.modal.name == 'create_playlist' ? : null } { this.props.modal.name == 'edit_playlist' ? : null } { this.props.modal.name == 'send_authorization' ? : null } { this.props.modal.name == 'receive_authorization' ? : null } { this.props.modal.name == 'edit_radio' ? : null } { this.props.modal.name == 'image_zoom' ? : null } { this.props.modal.name == 'kiosk_mode' ? : null } { this.props.modal.name == 'search_uri_schemes' ? : null } { this.props.modal.name == 'volume' ? : null } { this.props.modal.name == 'track_info' ? : null }
); } } const mapStateToProps = (state, ownProps) => { return { current_track: (state.core.current_track !== undefined && state.core.tracks !== undefined && state.core.tracks[state.core.current_track.uri] !== undefined ? state.core.tracks[state.core.current_track.uri] : null), uri_schemes: (state.mopidy.uri_schemes ? state.mopidy.uri_schemes : []), search_uri_schemes: (state.ui.search_uri_schemes ? state.ui.search_uri_schemes : []), volume: state.mopidy.volume, mute: state.mopidy.mute, modal: state.ui.modal, radio: state.core.radio, tracks: state.core.tracks, artists: state.core.artists, playlists: state.core.playlists, context_menu: state.ui.context_menu, processes: state.ui.processes, mopidy_connected: state.mopidy.connected, spotify_authorized: state.spotify.authorization, spotify_library_playlists: state.spotify.library_playlists, mopidy_library_playlists: state.mopidy.library_playlists } } const mapDispatchToProps = (dispatch) => { return { coreActions: bindActionCreators(coreActions, dispatch), uiActions: bindActionCreators(uiActions, dispatch), pusherActions: bindActionCreators(pusherActions, dispatch), spotifyActions: bindActionCreators(spotifyActions, dispatch), mopidyActions: bindActionCreators(mopidyActions, dispatch), geniusActions: bindActionCreators(geniusActions, dispatch) } } export default connect(mapStateToProps, mapDispatchToProps)(Modal)