feat: 统一的Hook架构
This commit is contained in:
@@ -251,6 +251,77 @@ export const useEventDetailEvents = ({ event, navigate } = {}) => {
|
||||
});
|
||||
}, [track, event]);
|
||||
|
||||
/**
|
||||
* 追踪评论点赞/取消点赞
|
||||
* @param {string} commentId - 评论ID
|
||||
* @param {boolean} isLiked - 是否点赞
|
||||
*/
|
||||
const trackCommentLiked = useCallback((commentId, isLiked) => {
|
||||
if (!commentId) {
|
||||
logger.warn('useEventDetailEvents', 'Comment ID is required');
|
||||
return;
|
||||
}
|
||||
|
||||
track(isLiked ? 'Comment Liked' : 'Comment Unliked', {
|
||||
comment_id: commentId,
|
||||
event_id: event?.id,
|
||||
action: isLiked ? 'like' : 'unlike',
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
|
||||
logger.debug('useEventDetailEvents', `${isLiked ? '❤️' : '🤍'} Comment ${isLiked ? 'Liked' : 'Unliked'}`, {
|
||||
commentId,
|
||||
eventId: event?.id,
|
||||
});
|
||||
}, [track, event]);
|
||||
|
||||
/**
|
||||
* 追踪添加评论
|
||||
* @param {string} commentId - 评论ID
|
||||
* @param {number} contentLength - 评论内容长度
|
||||
*/
|
||||
const trackCommentAdded = useCallback((commentId, contentLength = 0) => {
|
||||
if (!event || !event.id) {
|
||||
logger.warn('useEventDetailEvents', 'Event object is required for comment tracking');
|
||||
return;
|
||||
}
|
||||
|
||||
track('Comment Added', {
|
||||
comment_id: commentId,
|
||||
event_id: event.id,
|
||||
content_length: contentLength,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
|
||||
logger.debug('useEventDetailEvents', '💬 Comment Added', {
|
||||
commentId,
|
||||
eventId: event.id,
|
||||
contentLength,
|
||||
});
|
||||
}, [track, event]);
|
||||
|
||||
/**
|
||||
* 追踪删除评论
|
||||
* @param {string} commentId - 评论ID
|
||||
*/
|
||||
const trackCommentDeleted = useCallback((commentId) => {
|
||||
if (!commentId) {
|
||||
logger.warn('useEventDetailEvents', 'Comment ID is required');
|
||||
return;
|
||||
}
|
||||
|
||||
track('Comment Deleted', {
|
||||
comment_id: commentId,
|
||||
event_id: event?.id,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
|
||||
logger.debug('useEventDetailEvents', '🗑️ Comment Deleted', {
|
||||
commentId,
|
||||
eventId: event?.id,
|
||||
});
|
||||
}, [track, event]);
|
||||
|
||||
return {
|
||||
// 页面级事件
|
||||
trackEventAnalysisViewed,
|
||||
@@ -264,6 +335,11 @@ export const useEventDetailEvents = ({ event, navigate } = {}) => {
|
||||
// 用户行为事件
|
||||
trackEventFavoriteToggled,
|
||||
trackEventShared,
|
||||
|
||||
// 社交互动事件
|
||||
trackCommentLiked,
|
||||
trackCommentAdded,
|
||||
trackCommentDeleted,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user