Advertisement
Guest User

Untitled

a guest
Sep 5th, 2019
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from "react";
  2. import PropTypes from "prop-types";
  3. import { Menu } from "semantic-ui-react";
  4. import { connect } from "react-redux";
  5. import { LogIn } from "../../../app/components";
  6. import LogModal from "../log-modal";
  7. import Buttons from "./Buttons";
  8. import Ratings from "./Rating";
  9. import Share from "./Share";
  10. import "./styles.css";
  11.  
  12. //class Hoverable extends React.Component {
  13. //    state = { hovered: false };
  14. //    render() {
  15. //        return (
  16. //            <div
  17. //                onMouseEnter={() => this.setState({ hovered: true })}
  18. //                onMouseLeave={() => setTimeout(() => {this.setState({ hovered: false })}, 1500)}
  19. //            >
  20. //                {this.props.children(this.state.hovered)}
  21. //            </div>
  22. //        );
  23. //    }
  24. //}
  25.  
  26. class Actions extends React.Component {
  27.   handleChange = (event, { name, value }) => {
  28.     if (this.state.hasOwnProperty(name)) {
  29.       this.setState({ [name]: value });
  30.     }
  31.   };
  32.  
  33.   constructor(props) {
  34.     super(props);
  35.     this.handleMouseHover = this.handleMouseHover.bind(this);
  36.     this.state = {
  37.       isHovering: false,
  38.     };
  39.   }
  40.  
  41.   handleMouseHover() {
  42.     this.setState(this.toggleHoverState);
  43.   }
  44.  
  45.   toggleHoverState(state) {
  46.     return {
  47.       isHovering: !state.isHovering,
  48.     };
  49.   }
  50.  
  51.  
  52.   render() {
  53.     return (
  54.       <Menu floated="right" icon="labeled" className="actions" vertical fluid>
  55.         {this.props.isAuthenticated ? (
  56.           <React.Fragment>
  57.             <Menu.Item>
  58.               <Buttons game={this.props.game} />
  59.             </Menu.Item>
  60.             <Menu.Item className="rate">
  61.               Rate
  62.               <Ratings game={this.props.game} />
  63.             </Menu.Item>
  64.             <LogModal game={this.props.game} />
  65.             <Menu.Item content="Add to a list" link />
  66.           </React.Fragment>
  67.         ) : (
  68.           <LogIn loginText="Sign in to log, rate or review..." />
  69.         )}
  70.         <Menu.Item>
  71.           {!this.state.isHovering &&
  72.           <div
  73.           onMouseEnter={this.handleMouseHover}
  74.           >
  75.             Share
  76.           </div>
  77.           }
  78.           {this.state.isHovering &&
  79.           <div
  80.           onMouseLeave={this.handleMouseHover}
  81.           >
  82.             <Share game={this.props.game}/>
  83.           </div>
  84.         }
  85.         </Menu.Item>
  86.       </Menu>
  87.     );
  88.   }
  89. }
  90.  
  91. Actions.propTypes = {
  92.   isAuthenticated: PropTypes.bool,
  93.   user: PropTypes.object,
  94.   game: PropTypes.object.isRequired
  95. };
  96.  
  97. const mapStateToProps = state => ({
  98.   user: state.auth.user,
  99.   isAuthenticated: state.auth.isAuthenticated
  100. });
  101.  
  102. export default connect(mapStateToProps)(Actions);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement