Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class MyRect extends Component<Props, State> {
  2. lastRezize: any
  3.  
  4. state = {
  5. width: window.innerWidth,
  6. height: window.innerHeight
  7. }
  8.  
  9.  
  10. componentDidMount() {
  11. this.updateCanvas()
  12. window.addEventListener("resize", this.resizeCanvas)
  13. }
  14.  
  15. componentWillUnmount() {
  16. window.removeEventListener('resize', this.resizeCanvas);
  17. }
  18.  
  19. updateCanvas() {
  20. const canvas = document.getElementById('canvass') as HTMLCanvasElement
  21. const ctx: CanvasRenderingContext2D = canvas.getContext('2d')
  22. for (let x = 0; x < this.state.width; x += 32) {
  23. for (let y = 0; y < this.state.height; y += 32) {
  24. ctx.fillRect(x, y, 3, 3)
  25. }
  26. }
  27. }
  28. resizeCanvas = () => {
  29. clearTimeout(this.lastResize)
  30.  
  31. this.lastResize = setTimeout(() => {
  32. this.setState({
  33. width: window.innerWidth,
  34. height: window.innerHeight
  35. })
  36. this.updateCanvas()
  37. },200)
  38. }
  39.  
  40. render() {
  41. const { classes } = this.props
  42. return (
  43. <div className={classes.canvas}>
  44. <canvas id="canvass" ref="canvas" width={this.state.width + 'px'} height={this.state.height + 'px'}/>
  45. </div>
  46. )
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement