react-say
Version:
[](https://badge.fury.io/js/react-say) [](https://travis-ci.org/compulim/react-say)
31 lines (26 loc) • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = useImmediateEffect;
var _react = require("react");
function useImmediateEffect(fn, deps) {
var unsubscribeRef = (0, _react.useRef)({
first: true,
id: Math.random().toString(36).substr(2, 5),
unsubscribe: fn()
});
(0, _react.useEffect)(function () {
var current = unsubscribeRef.current;
if (!current.first) {
current.unsubscribe = fn();
} else {
current.first = false;
}
return function () {
current.unsubscribe && current.unsubscribe();
current.unsubscribe = null;
};
}, deps);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91c2VJbW1lZGlhdGVFZmZlY3QuanMiXSwibmFtZXMiOlsidXNlSW1tZWRpYXRlRWZmZWN0IiwiZm4iLCJkZXBzIiwidW5zdWJzY3JpYmVSZWYiLCJmaXJzdCIsImlkIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic3Vic3RyIiwidW5zdWJzY3JpYmUiLCJjdXJyZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRWUsU0FBU0Esa0JBQVQsQ0FBNEJDLEVBQTVCLEVBQWdDQyxJQUFoQyxFQUFzQztBQUNuRCxNQUFNQyxjQUFjLEdBQUcsbUJBQU87QUFDNUJDLElBQUFBLEtBQUssRUFBRSxJQURxQjtBQUU1QkMsSUFBQUEsRUFBRSxFQUFFQyxJQUFJLENBQUNDLE1BQUwsR0FBY0MsUUFBZCxDQUF1QixFQUF2QixFQUEyQkMsTUFBM0IsQ0FBa0MsQ0FBbEMsRUFBcUMsQ0FBckMsQ0FGd0I7QUFHNUJDLElBQUFBLFdBQVcsRUFBRVQsRUFBRTtBQUhhLEdBQVAsQ0FBdkI7QUFNQSx3QkFBVSxZQUFNO0FBQ2QsUUFBUVUsT0FBUixHQUFvQlIsY0FBcEIsQ0FBUVEsT0FBUjs7QUFFQSxRQUFJLENBQUNBLE9BQU8sQ0FBQ1AsS0FBYixFQUFvQjtBQUNsQk8sTUFBQUEsT0FBTyxDQUFDRCxXQUFSLEdBQXNCVCxFQUFFLEVBQXhCO0FBQ0QsS0FGRCxNQUVPO0FBQ0xVLE1BQUFBLE9BQU8sQ0FBQ1AsS0FBUixHQUFnQixLQUFoQjtBQUNEOztBQUVELFdBQU8sWUFBTTtBQUNYTyxNQUFBQSxPQUFPLENBQUNELFdBQVIsSUFBdUJDLE9BQU8sQ0FBQ0QsV0FBUixFQUF2QjtBQUNBQyxNQUFBQSxPQUFPLENBQUNELFdBQVIsR0FBc0IsSUFBdEI7QUFDRCxLQUhEO0FBSUQsR0FiRCxFQWFHUixJQWJIO0FBY0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlSW1tZWRpYXRlRWZmZWN0KGZuLCBkZXBzKSB7XG4gIGNvbnN0IHVuc3Vic2NyaWJlUmVmID0gdXNlUmVmKHtcbiAgICBmaXJzdDogdHJ1ZSxcbiAgICBpZDogTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDUpLFxuICAgIHVuc3Vic2NyaWJlOiBmbigpXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgeyBjdXJyZW50IH0gPSB1bnN1YnNjcmliZVJlZjtcblxuICAgIGlmICghY3VycmVudC5maXJzdCkge1xuICAgICAgY3VycmVudC51bnN1YnNjcmliZSA9IGZuKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGN1cnJlbnQuZmlyc3QgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY3VycmVudC51bnN1YnNjcmliZSAmJiBjdXJyZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgICBjdXJyZW50LnVuc3Vic2NyaWJlID0gbnVsbDtcbiAgICB9O1xuICB9LCBkZXBzKTtcbn1cbiJdfQ==