Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import PropTypes from 'prop-types';
  3.  
  4. class WrapperAuto extends Component {
  5.  
  6. componentDidMount() {
  7. document.addEventListener('mousedown', this.handleClickOutside);
  8. };
  9.  
  10. componentWillUnmount() {
  11. document.removeEventListener('mousedown', this.handleClickOutside);
  12. }
  13. setWrapperRef = (node) => {
  14. this.wrapperRef = node;
  15. };
  16.  
  17. handleClickOutside = (event) => {
  18. if (this.wrapperRef && !this.wrapperRef.contains(event.target)) {
  19. this.props.change();
  20. }
  21. };
  22.  
  23. render() {
  24. return (
  25. <div ref={this.setWrapperRef}>
  26. {this.props.children}
  27. </div>
  28. )
  29. }
  30. }
  31.  
  32. WrapperAuto.propTypes = {
  33. change: PropTypes.func.isRequired,
  34. };
  35.  
  36. WrapperAuto.defaultProps = {
  37. change: ""
  38. };
  39.  
  40. export default WrapperAuto;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement