Guest User

Untitled

a guest
Nov 17th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. class Clock extends Component {
  2. constructor(props) {
  3. super(props);
  4. this.state = {break:5,
  5. session:25,
  6. timer: 1500}
  7.  
  8. this.handleClick = this.handleClick.bind(this);
  9. this.handleTimer=this.handleTimer.bind(this);
  10. }
  11.  
  12. handleClick(event){
  13. const id= event.target.id;
  14. let breakvar= this.state.break;
  15. let sessionvar= this.state.session;
  16. if (id==="break-increment" && breakvar<=59){
  17. this.setState((state) => ({
  18. break: this.state.break +1}));}
  19.  
  20. else if (id==="break-decrement" && breakvar>1){
  21. this.setState((state) => ({
  22. break: this.state.break -1}));}
  23.  
  24. else if(id==="reset"){
  25. this.setState((state) => ({
  26. break: 5, session: 25, timer: 1500}));
  27. }
  28.  
  29.  
  30. else if (id==="session-increment" && sessionvar <=59){
  31. this.setState((state) => ({
  32. session: this.state.session +1, timer: this.state.timer + 60}));}
  33.  
  34. else if(id==="session-decrement" && sessionvar>1){
  35. this.setState((state) => ({
  36. session: this.state.session -1, timer:this.state.timer - 60}));}
  37.  
  38. }
  39.  
  40. handleTimer(evt){
  41. let timer=this.state.timer;
  42.  
  43. let Interval=setInterval(() => {
  44. this.setState({
  45. timer: this.state.timer - 1
  46. })
  47. console.log(timer) },1000)
  48. if(timer ===0){
  49. clearInterval(Interval)
  50. }
  51. }
  52.  
  53.  
  54.  
  55.  
  56.  
  57. Clock(){
  58. let minutes = Math.floor(this.state.timer / 60);
  59. let seconds = this.state.timer - minutes * 60;
  60. seconds = seconds < 10 ? '0' + seconds : seconds;
  61. minutes = minutes < 10 ? '0' + minutes : minutes;
  62. return minutes + ':' + seconds;
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. render() {
  74. return(
  75. <div id="container">
  76. <Display break={this.state.break} displayTime={this.Clock()} session={this.state.session}/>
  77. <p id="break-label">Break length</p>
  78. <Button onClick={this.handleClick} id="break-increment"/>
  79. <Button onClick={this.handleClick} id="break-decrement"/>
  80. <p id="session-label">Session length</p>
  81. <Button onClick={this.handleClick} id="session-increment" />
  82. <Button onClick={this.handleClick} id="session-decrement"/>
  83. <Button onClick={this.handleTimer} id="start_stop"/>
  84. <Button onClick={this.handleClick} id="reset"/>
  85. </div>
  86. )
  87.  
  88. }
Add Comment
Please, Sign In to add comment