Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const api = {
  2.   request: (id) => {
  3.     console.log(`requesting info for ${id}`);
  4.     return new Promise((resolve, reject) => {
  5.       setTimeout(() => resolve(id), 1000);
  6.     })
  7.   }
  8. }
  9.  
  10. let interval;
  11. let selected;
  12.  
  13. const HelloWorld = () => {
  14.   // const [selected, setSelected] = React.useState(null);
  15.   const [clicked, setClicked] = React.useState(null);
  16.  
  17.   const refreshStudent = async (studentId) => {
  18.     const response = await api.request(studentId);
  19.     if (studentId === selected) {
  20.       console.log(`painting markers for ${studentId}`);  
  21.     }
  22.   }
  23.  
  24.   const selectStudent = (studentId) => {
  25.     selected = studentId;
  26.     refreshStudent(studentId);
  27.    
  28.     if (interval) {
  29.       clearInterval(interval);
  30.     }
  31.    
  32.     interval = setInterval(() => refreshStudent(studentId), 3000);
  33.   }
  34.  
  35.   return (
  36.     <div>
  37.       Students ( { clicked })
  38.      
  39.       <div className="button" onClick={() => selectStudent(1)}>
  40.         Student 1
  41.       </div>
  42.      
  43.       <div className="button" onClick={() => selectStudent(2)}>
  44.         Student 2
  45.       </div>
  46.     </div>
  47.    );
  48. };
  49.  
  50.  
  51. ReactDOM.render(<HelloWorld />, document.getElementById('app'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement