import React from "react"; import { connect } from "react-redux"; import { close, openMediaFileDialog, loadMediaFiles } from "../../actionCreators"; import { TOGGLE_MAIN_WINDOW, TOGGLE_EQUALIZER_WINDOW, TOGGLE_PLAYLIST_WINDOW, TOGGLE_GEN_WINDOW } from "../../actionTypes"; import { getGenWindows } from "../../selectors"; import { LOAD_STYLE } from "../../constants"; import { Hr, Node, Parent, LinkNode } from "../ContextMenu"; import PlaybackContextMenu from "../PlaybackContextMenu"; import SkinsContextMenu from "../SkinsContextMenu"; const MainContextMenu = props => (
{props.filePickers && props.filePickers.map( (picker, i) => (props.networkConnected || !picker.requiresNetwork) && ( { let files; try { files = await picker.filePicker(); } catch (e) { console.error("Error loading from file picker", e); } props.loadMediaFiles(files, LOAD_STYLE.PLAY); }} label={picker.contextMenuName} /> ) )}
{Object.keys(props.genWindows).map(i => ( props.toggleGenWindow(i)} /> ))}


); const mapStateToProps = state => ({ networkConnected: state.network.connected, mainWindowOpen: state.windows.mainWindow, // For now you can't close the main window without closing all of Webamp playlistOpen: state.windows.playlist, equalizerOpen: state.windows.equalizer, genWindows: getGenWindows(state) }); const mapDispatchToProps = { close, openMediaFileDialog, loadMediaFiles, toggleMainWindow: () => ({ type: TOGGLE_MAIN_WINDOW }), togglePlaylist: () => ({ type: TOGGLE_PLAYLIST_WINDOW }), toggleEqualizer: () => ({ type: TOGGLE_EQUALIZER_WINDOW }), toggleGenWindow: windowId => ({ type: TOGGLE_GEN_WINDOW, windowId }) }; export default connect(mapStateToProps, mapDispatchToProps)(MainContextMenu);