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