All files / dist/react react-utils.js

69.23% Statements 9/13
83.33% Branches 5/6
80% Functions 4/5
69.23% Lines 9/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36      58x 58x           58x 58x                 78x 78x 78x 50x     78x                  
import { useEffect, useLayoutEffect } from "react";
 
export function useProperties(targetElement, propName, value) {
  useEffect(() => {
    if (
      value !== undefined &&
      targetElement.current &&
      targetElement.current[propName] !== value
    ) {
      // add try catch to avoid errors when setting read-only properties
      try {
        targetElement.current[propName] = value;
      } catch (e) {
        console.warn(e);
      }
    }
  }, [value, targetElement.current]);
}
 
export function useEventListener(targetElement, eventName, eventHandler) {
  useLayoutEffect(() => {
    const el = targetElement?.current;
    if (eventHandler !== undefined) {
      el?.addEventListener(eventName, eventHandler);
    }
 
    return () => {
      Iif (eventHandler?.cancel) {
        eventHandler.cancel();
      }
 
      el?.removeEventListener(eventName, eventHandler);
    };
  }, [eventName, eventHandler, targetElement.current]);
}