platform-codebase/@packages/@plugins/analytics/src/hooks/use-track-engagement.ts

25 lines
704 B
TypeScript
Executable file

import { useCallback } from 'react';
import { useAnalytics } from '../providers/analytics-provider';
import type { EngagementEventData } from '../types';
type TrackEngagementFn = (
data: Omit<EngagementEventData, 'userId'> & { userId?: string },
) => void;
export const useTrackEngagement = (): TrackEngagementFn => {
const { trackEngagement } = useAnalytics();
const track = useCallback(
(data: Omit<EngagementEventData, 'userId'> & { userId?: string }) => {
if (!data.userId) {
console.warn('[Analytics] Engagement tracking requires userId');
return;
}
trackEngagement(data as EngagementEventData);
},
[trackEngagement],
);
return track;
};