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)

31 lines (26 loc) 2.58 kB
"use strict"; 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==