Guest User

hoverdivonkeydown.js

a guest
Aug 14th, 2022
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const MyComponent = () => {
  2.   const [isMouseOver, setIsMouseOver] = React.useState(undefined);
  3.  
  4.   // Need to add event listener to entire document
  5.   React.useEffect(() => {
  6.     document.addEventListener('keydown', keyDown);
  7.  
  8.     // Don't forget to clean up
  9.     return function cleanup() {
  10.       document.removeEventListener('keydown', keyDown);
  11.     }
  12.   });
  13.  
  14.   function keyDown(e) {
  15.     if (isMouseOver && e.ctrlKey) {
  16.       alert("ctrl key pressed!");
  17.     }
  18.   };
  19.  
  20.   const mouseOver = (e) => {
  21.     setIsMouseOver(() => true);
  22.   };
  23.  
  24.   const mouseOut = (e) => {
  25.     setIsMouseOver(() => false);
  26.   };
  27.  
  28.   const generateDOM = (layoutState) => {
  29.     return (
  30.       <div
  31.         style={{ width: "100%", height: "100%", border: "1px solid black" }}
  32.         // onKeyDown={keyDown}
  33.         // tabIndex="0"
  34.         onMouseOver={mouseOver}
  35.         onMouseOut={mouseOut}
  36.       >
  37.         Hover in this div then press the ctrl key
  38.         <div>
  39.           <small>is mouse over? {isMouseOver ? "yes" : "no"}</small>
  40.         </div>
  41.       </div>
  42.     );
  43.   };
  44.  
  45.   return generateDOM();
  46. };
  47.  
  48. ReactDOM.render(<MyComponent />, document.body);
  49.  
  50.  
Add Comment
Please, Sign In to add comment