Rooks
Event Handling

useDocumentEventListener

Attaches and cleans up an event listener on the document.

About

A react hook to an event listener to the document object

Examples

Track document clicks

import { useDocumentEventListener } from "rooks";
import { useState, useEffect } from "react";

export default function App() {
  const [myState, setMyState] = useState(0);

  useDocumentEventListener("click", function () {
    setMyState(myState + 1);
  });

  return (
    <div className="App">
      <h1>useDocumentEventListener Example</h1>
      <br></br>
      <h1>Clicked {myState} times</h1>
    </div>
  );
}

Use a document-level listener to close a surface

import { useState } from "react";
import { useDocumentEventListener } from "rooks";

export default function DismissibleNotice() {
  const [isOpen, setIsOpen] = useState(true);

  useDocumentEventListener("click", () => {
    setIsOpen(false);
  });

  return isOpen ? (
    <div>Click anywhere in the document to dismiss me.</div>
  ) : null;
}

Arguments

ArgumentsTypeDescriptionDefault value
eventNamestringThe event to trackundefind
callbackfunctionThe callback to be called on eventundefined
conditionsobjectThe options to be passed to the event listener
isLayoutEffectbooleanShould it use layout effect. Defaults to falsefalse

Return

No return value.

On this page