UNPKG

@playbooks/hooks

Version:

A collection of React hooks for Playbooks.

42 lines (41 loc) 1.21 kB
import { useEffect } from "react"; const useLocalStorage = (method, listeners) => { useEffect(() => { window.addEventListener("storage", method); return () => window.removeEventListener("storage", method); }, [...listeners]); }; const useOffline = (method, listeners) => { useEffect(() => { method(); window.addEventListener("offline", method); return () => window.removeEventListener("online", method); }, [...listeners]); }; const useOnline = (method, listeners) => { useEffect(() => { method(); window.addEventListener("online", method); return () => window.removeEventListener("online", method); }, [...listeners]); }; const useResize = (method, listeners) => { useEffect(() => { method(); window.addEventListener("resize", method); return () => window.removeEventListener("resize", method); }, [...listeners]); }; const useResizeTarget = (element, method, listeners) => { useEffect(() => { if (element) element.addEventListener("resize", method); return () => element && element.removeEventListener("resize", method); }, [...listeners]); }; export { useLocalStorage, useOffline, useOnline, useResize, useResizeTarget };