import React from "react"; import { connect } from "react-redux"; import classnames from "classnames"; import { WINDOWS } from "../../constants"; import MiniTime from "../MiniTime"; import ActionButtons from "./ActionButtons"; import MainBalance from "./MainBalance"; import Close from "./Close"; import ClutterBar from "./ClutterBar"; import MainContextMenu from "./MainContextMenu"; import Eject from "./Eject"; import EqToggleButton from "./EqToggleButton"; import PlaylistToggleButton from "./PlaylistToggleButton"; import Kbps from "./Kbps"; import Khz from "./Khz"; import Marquee from "./Marquee"; import MonoStereo from "./MonoStereo"; import Position from "./Position"; import Repeat from "./Repeat"; import Shade from "./Shade"; import Shuffle from "./Shuffle"; import Time from "./Time"; import Visualizer from "./Visualizer"; import MainVolume from "./MainVolume"; import { SET_FOCUSED_WINDOW } from "../../actionTypes"; import { loadFileFromReference } from "../../actionCreators"; import "../../../css/main-window.css"; export class MainWindow extends React.Component { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); this.handleDrop = this.handleDrop.bind(this); } handleClick() { this.props.setFocus(); } supress(e) { e.stopPropagation(); e.preventDefault(); } handleDrop(e) { this.supress(e); const { files } = e.dataTransfer; // TODO: Move this to an actionCreator this.props.loadFileFromReference(files[0]); } render() { const { focused, loading, doubled, shade, llama, status, working } = this.props; const className = classnames({ window: true, // TODO: Handle these status changes in the individual components play: status === "PLAYING", stop: status === "STOPPED", pause: status === "PAUSED", selected: focused === WINDOWS.MAIN, draggable: true, loading, doubled, llama, shade }); return (
); } } const mapStateToProps = state => { const { media: { status }, display: { loading, doubled, shade, llama, working }, windows: { focused } } = state; return { status, loading, doubled, shade, llama, working, focused }; }; const mapDispatchToProps = { setFocus: () => ({ type: SET_FOCUSED_WINDOW, window: WINDOWS.MAIN }), loadFileFromReference }; export default connect(mapStateToProps, mapDispatchToProps)(MainWindow);