react-say-fork
Version:
# Goal and TODOs * Add Typescript support * Make compononents style-customizable
18 lines (17 loc) • 811 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const useImmediateEffect_1 = __importDefault(require("./useImmediateEffect"));
function useEvent(target, name, listener, options) {
(0, useImmediateEffect_1.default)(() => {
const handler = (event) => listener && listener(event);
target === null || target === void 0 ? void 0 : target.addEventListener(name, handler, options);
return () => {
listener = null;
target === null || target === void 0 ? void 0 : target.removeEventListener(name, handler, options);
};
}, [listener, name, options, target]);
}
exports.default = useEvent;