UNPKG

react-say

Version:

[![npm version](https://badge.fury.io/js/react-say.svg)](https://badge.fury.io/js/react-say) [![Build Status](https://travis-ci.org/compulim/react-say.svg?branch=master)](https://travis-ci.org/compulim/react-say)

27 lines (22 loc) 2.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = useEvent; var _useImmediateEffect = _interopRequireDefault(require("./useImmediateEffect")); function useEvent(target, name, listener, options) { (0, _useImmediateEffect["default"])(function () { var handler = function handler(event) { return listener && listener(event); }; target.addEventListener(name, handler, options); return function () { // It seems speechSynthesis.onvoiceschanged still fire after we called removeEventListener. // We are protecting this scenario by setting listener to falsy. listener = null; target.removeEventListener(name, handler, options); }; }, [listener, name, options, target]); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VFdmVudC5qcyJdLCJuYW1lcyI6WyJ1c2VFdmVudCIsInRhcmdldCIsIm5hbWUiLCJsaXN0ZW5lciIsIm9wdGlvbnMiLCJoYW5kbGVyIiwiZXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRWUsU0FBU0EsUUFBVCxDQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDQyxRQUFoQyxFQUEwQ0MsT0FBMUMsRUFBbUQ7QUFDaEUsc0NBQW1CLFlBQU07QUFDdkIsUUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQUMsS0FBSztBQUFBLGFBQUlILFFBQVEsSUFBSUEsUUFBUSxDQUFDRyxLQUFELENBQXhCO0FBQUEsS0FBckI7O0FBRUFMLElBQUFBLE1BQU0sQ0FBQ00sZ0JBQVAsQ0FBd0JMLElBQXhCLEVBQThCRyxPQUE5QixFQUF1Q0QsT0FBdkM7QUFFQSxXQUFPLFlBQU07QUFDWDtBQUNBO0FBQ0FELE1BQUFBLFFBQVEsR0FBRyxJQUFYO0FBQ0FGLE1BQUFBLE1BQU0sQ0FBQ08sbUJBQVAsQ0FBMkJOLElBQTNCLEVBQWlDRyxPQUFqQyxFQUEwQ0QsT0FBMUM7QUFDRCxLQUxEO0FBTUQsR0FYRCxFQVdHLENBQUNELFFBQUQsRUFBV0QsSUFBWCxFQUFpQkUsT0FBakIsRUFBMEJILE1BQTFCLENBWEg7QUFZRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1c2VJbW1lZGlhdGVFZmZlY3QgZnJvbSAnLi91c2VJbW1lZGlhdGVFZmZlY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VFdmVudCh0YXJnZXQsIG5hbWUsIGxpc3RlbmVyLCBvcHRpb25zKSB7XG4gIHVzZUltbWVkaWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlciA9IGV2ZW50ID0+IGxpc3RlbmVyICYmIGxpc3RlbmVyKGV2ZW50KTtcblxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIsIG9wdGlvbnMpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIEl0IHNlZW1zIHNwZWVjaFN5bnRoZXNpcy5vbnZvaWNlc2NoYW5nZWQgc3RpbGwgZmlyZSBhZnRlciB3ZSBjYWxsZWQgcmVtb3ZlRXZlbnRMaXN0ZW5lci5cbiAgICAgIC8vIFdlIGFyZSBwcm90ZWN0aW5nIHRoaXMgc2NlbmFyaW8gYnkgc2V0dGluZyBsaXN0ZW5lciB0byBmYWxzeS5cbiAgICAgIGxpc3RlbmVyID0gbnVsbDtcbiAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKG5hbWUsIGhhbmRsZXIsIG9wdGlvbnMpO1xuICAgIH07XG4gIH0sIFtsaXN0ZW5lciwgbmFtZSwgb3B0aW9ucywgdGFyZ2V0XSk7XG59XG4iXX0=