useEvent.js 1.1 KB

12345678910111213141516171819202122232425262728
  1. var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
  2. if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
  3. if (ar || !(i in from)) {
  4. if (!ar) ar = Array.prototype.slice.call(from, 0, i);
  5. ar[i] = from[i];
  6. }
  7. }
  8. return to.concat(ar || Array.prototype.slice.call(from));
  9. };
  10. /**
  11. * copy from https://github.com/react-component/util/blob/9d5cb8946da29e690bead78b2c251da6f7cbd0eb/src/hooks/useEvent.ts
  12. */
  13. /* eslint-disable @typescript-eslint/no-explicit-any */
  14. import * as React from 'functional-mini/compat';
  15. // eslint-disable-next-line @typescript-eslint/ban-types
  16. export function useEvent(callback) {
  17. var fnRef = React.useRef();
  18. fnRef.current = callback;
  19. var memoFn = React.useCallback((function () {
  20. var _a;
  21. var args = [];
  22. for (var _i = 0; _i < arguments.length; _i++) {
  23. args[_i] = arguments[_i];
  24. }
  25. return (_a = fnRef.current) === null || _a === void 0 ? void 0 : _a.call.apply(_a, __spreadArray([fnRef], args, false));
  26. }), []);
  27. return memoFn;
  28. }