@atlaskit/analytics-next
Version:
React components, HOCs and hooks to assist with tracking user activity with React components
20 lines (19 loc) • 998 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useCallbackWithAnalytics = void 0;
var _react = require("react");
var _useAnalyticsEvents2 = require("./useAnalyticsEvents");
var _useTrackedRef = require("./useTrackedRef");
var useCallbackWithAnalytics = exports.useCallbackWithAnalytics = function useCallbackWithAnalytics(method, payload, channel) {
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
var methodRef = (0, _useTrackedRef.useTrackedRef)(method);
var payloadRef = (0, _useTrackedRef.useTrackedRef)(payload);
return (0, _react.useCallback)(function () {
var pload = typeof payloadRef.current === 'function' ? payloadRef.current.apply(payloadRef, arguments) : payloadRef.current;
createAnalyticsEvent(pload).fire(channel);
methodRef.current.apply(methodRef, arguments);
}, [createAnalyticsEvent, methodRef, payloadRef, channel]);
};