tdesign-react
Version:
TDesign Component for React
41 lines (33 loc) • 1.45 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var _util_noop = require('../_util/noop.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var useInsertionEffect = typeof window !== "undefined" ? React__default["default"].useInsertionEffect || React__default["default"].useLayoutEffect : _util_noop["default"];
function useEventCallbackShouldNotBeInvokedBeforeMount() {
throw new Error("INVALID_USEEVENTCALLBACK_INVOCATION: the callback from useEventCallback cannot be invoked before the component has mounted.");
}
function useEventCallback(callback) {
var latestRef = React__default["default"].useRef(useEventCallbackShouldNotBeInvokedBeforeMount);
useInsertionEffect(function () {
latestRef.current = callback;
}, [callback]);
var stableRef = React__default["default"].useRef(null);
if (!stableRef.current) {
stableRef.current = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return latestRef.current.apply(this, args);
};
}
return stableRef.current;
}
exports["default"] = useEventCallback;
//# sourceMappingURL=useEventCallback.js.map