Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React from 'react';
- import PropTypes from 'prop-types';
- export default class MouseMovement extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- timer: undefined,
- };
- this.timeout = this.timeout.bind(this);
- this.onMouseMove = this.onMouseMove.bind(this);
- }
- componentWillMount() {
- document.addEventListener('mousemove', this.onMouseMove);
- const timer = setTimeout(this.timeout, 4000);
- this.setState({ timer });
- }
- componentWillUnmount() {
- document.removeEventListener('mousemove', this.onMouseMove);
- clearTimeout(this.state.timer);
- this.setState({ timer: undefined });
- }
- onMouseMove() {
- clearTimeout(this.state.timer);
- const timer = setTimeout(this.timeout, 4000);
- this.setState({ timer });
- this.props.onMoved(true);
- }
- timeout() {
- clearTimeout(this.state.timer);
- this.props.onMoved(false);
- }
- render() {
- return null;
- }
- }
- MouseMovement.propTypes = {
- onMoved: PropTypes.func.isRequired,
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement