import React from 'react'; import {connect} from 'react-redux'; import classnames from 'classnames'; import {close, setSkinFromFilename, openFileDialog} from '../actionCreators'; import {CLOSE_CONTEXT_MENU, TOGGLE_CONTEXT_MENU} from '../actionTypes'; import '../../css/context-menu.css'; const SKINS = [ {file: 'base-2.91.wsz', name: ''}, {file: 'MacOSXAqua1-5.wsz', name: 'Mac OSX v1.5 (Aqua)'}, {file: 'TopazAmp1-2.wsz', name: 'TopazAmp'}, {file: 'Vizor1-01.wsz', name: 'Vizor'}, {file: 'XMMS-Turquoise.wsz', name: 'XMMS Turquoise '}, {file: 'ZaxonRemake1-0.wsz', name: 'Zaxon Remake'} ]; class ContextMenu extends React.Component { componantWillMount() { // Clicking anywhere outside the context menu will close the window document.addEventListener('click', this.props.closeMenu); } componantWillUnmount() { document.removeEventListener('click', this.props.closeMenu); } render() { return
; } } const mapStateToProps = (state) => state.contextMenu; const mapDispatchToProps = (dispatch, ownProps) => ({ close: () => dispatch(close()), closeMenu: () => dispatch({type: CLOSE_CONTEXT_MENU}), toggleMenu: (e) => { dispatch({type: TOGGLE_CONTEXT_MENU}); e.stopPropagation(); }, openFileDialog: () => dispatch(openFileDialog(ownProps.fileInput)), setSkin: (filename) => dispatch(setSkinFromFilename(filename)) }); export default connect(mapStateToProps, mapDispatchToProps)(ContextMenu);