Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. import React, { Component } from 'react';
  2. import PropTypes from 'prop-types';
  3. import styled from 'styled-components';
  4.  
  5. const GridOverlayWrapper = styled.div`
  6. position: fixed;
  7. top: 0;
  8. left: 0;
  9. width: 100%;
  10. height: 100%;
  11. background: red;
  12. z-index: 10000;
  13. display: ${props => props.visible ? 'block' : 'none'}
  14. `;
  15.  
  16. class GridOverlay extends Component {
  17. constructor(props) {
  18. const { config } = props;
  19. super();
  20.  
  21. this.state = {
  22. config,
  23. visible: false
  24. };
  25.  
  26. this.onKeyUp = this.onKeyUp.bind(this);
  27. this.onKeyDown = this.onKeyDown.bind(this);
  28. }
  29.  
  30. componentDidMount() {
  31. window.addEventListener('keyup', this.onKeyUp, false);
  32. window.addEventListener('keydown', this.onKeyDown, false);
  33. }
  34.  
  35. componentWillUnmount() {
  36. window.removeEventListener('keyup', this.onKeyUp, false);
  37. window.removeEventListener('keydown', this.onKeyDown, false);
  38. }
  39.  
  40. onKeyUp(e) {
  41. console.log(e);
  42. this.setState({
  43. commandPressed: false
  44. });
  45. }
  46.  
  47. onKeyDown(e) {
  48. console.log(e);
  49. this.setState({
  50. commandPressed: true
  51. });
  52. }
  53.  
  54. render() {
  55. return (
  56. <GridOverlayWrapper visible={this.state.visible}>
  57. I am GridOverlay
  58. </GridOverlayWrapper>
  59. )
  60. }
  61. }
  62.  
  63. GridOverlay.propTypes = {
  64. config: PropTypes.shape({
  65. breakpoints: PropTypes.array.isRequired
  66. }).isRequired
  67. };
  68.  
  69. export default GridOverlay;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement