feat: tracking upgrade and discovery (#66)
This commit is contained in:
@@ -2,10 +2,13 @@ import React from 'react';
|
||||
|
||||
import { StrictDict } from 'utils';
|
||||
import { RequestStates } from 'data/constants/requests';
|
||||
import { handleEvent } from 'data/services/segment/utils';
|
||||
|
||||
import * as module from './hooks';
|
||||
import api from './api';
|
||||
|
||||
export const searchCourseEventName = 'learner_home.widget.search_course';
|
||||
|
||||
export const state = StrictDict({
|
||||
requestState: (val) => React.useState(val), // eslint-disable-line
|
||||
data: (val) => React.useState(val), // eslint-disable-line
|
||||
@@ -34,12 +37,18 @@ export const useRecommendationPanelData = () => {
|
||||
const [data, setData] = module.state.data({});
|
||||
module.useFetchCourses(setRequestState, setData);
|
||||
const courses = data.data?.courses || [];
|
||||
const courseSearchClickTracker = () => handleEvent(searchCourseEventName, {
|
||||
pageName: 'learner_home',
|
||||
linkType: 'button',
|
||||
linkCategory: 'search_button',
|
||||
});
|
||||
return {
|
||||
courses,
|
||||
isLoaded: requestState === RequestStates.completed && courses.length > 0,
|
||||
isFailed: requestState === RequestStates.failed
|
||||
|| (requestState === RequestStates.completed && courses.length === 0),
|
||||
isLoading: requestState === RequestStates.pending,
|
||||
courseSearchClickTracker,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user