From cc20dfd8cad1ce11f96c3bddada6ba85cab4b693 Mon Sep 17 00:00:00 2001 From: Muhammad Farhan Date: Fri, 7 Mar 2025 19:45:07 +0500 Subject: [PATCH] fix: fetch only studio home data without courses --- src/CourseAuthoringPage.jsx | 4 ++-- src/studio-home/data/thunks.js | 40 +++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/CourseAuthoringPage.jsx b/src/CourseAuthoringPage.jsx index 6b8e96827..e187522c0 100644 --- a/src/CourseAuthoringPage.jsx +++ b/src/CourseAuthoringPage.jsx @@ -11,7 +11,7 @@ import { fetchCourseDetail, fetchWaffleFlags } from './data/thunks'; import { useModel } from './generic/model-store'; import NotFoundAlert from './generic/NotFoundAlert'; import PermissionDeniedAlert from './generic/PermissionDeniedAlert'; -import { fetchStudioHomeData } from './studio-home/data/thunks'; +import { fetchOnlyStudioHomeData } from './studio-home/data/thunks'; import { getCourseAppsApiStatus } from './pages-and-resources/data/selectors'; import { RequestStatus } from './data/constants'; import Loading from './generic/Loading'; @@ -25,7 +25,7 @@ const CourseAuthoringPage = ({ courseId, children }) => { }, [courseId]); useEffect(() => { - dispatch(fetchStudioHomeData()); + dispatch(fetchOnlyStudioHomeData()); }, []); const courseDetail = useModel('courseDetails', courseId); diff --git a/src/studio-home/data/thunks.js b/src/studio-home/data/thunks.js index 495a726aa..57af75a42 100644 --- a/src/studio-home/data/thunks.js +++ b/src/studio-home/data/thunks.js @@ -16,10 +16,15 @@ import { fetchCourseDataSuccessV2, } from './slice'; -function fetchStudioHomeData(search, hasHomeData, requestParams = {}, isPaginationEnabled = false) { +function fetchStudioHomeData( + search, + hasHomeData, + requestParams = {}, + isPaginationEnabled = false, + shouldFetchCourses = true, +) { return async (dispatch) => { dispatch(updateLoadingStatuses({ studioHomeLoadingStatus: RequestStatus.IN_PROGRESS })); - dispatch(updateLoadingStatuses({ courseLoadingStatus: RequestStatus.IN_PROGRESS })); if (!hasHomeData) { try { @@ -31,22 +36,30 @@ function fetchStudioHomeData(search, hasHomeData, requestParams = {}, isPaginati return; } } - try { - if (isPaginationEnabled) { - const coursesData = await getStudioHomeCoursesV2(search || '', requestParams); - dispatch(fetchCourseDataSuccessV2(coursesData)); - } else { - const coursesData = await getStudioHomeCourses(search || ''); - dispatch(fetchCourseDataSuccess(coursesData)); - } + if (shouldFetchCourses) { + dispatch(updateLoadingStatuses({ courseLoadingStatus: RequestStatus.IN_PROGRESS })); + try { + if (isPaginationEnabled) { + const coursesData = await getStudioHomeCoursesV2(search || '', requestParams); + dispatch(fetchCourseDataSuccessV2(coursesData)); + } else { + const coursesData = await getStudioHomeCourses(search || ''); + dispatch(fetchCourseDataSuccess(coursesData)); + } - dispatch(updateLoadingStatuses({ courseLoadingStatus: RequestStatus.SUCCESSFUL })); - } catch (error) { - dispatch(updateLoadingStatuses({ courseLoadingStatus: RequestStatus.FAILED })); + dispatch(updateLoadingStatuses({ courseLoadingStatus: RequestStatus.SUCCESSFUL })); + } catch (error) { + dispatch(updateLoadingStatuses({ courseLoadingStatus: RequestStatus.FAILED })); + } } }; } +function fetchOnlyStudioHomeData() { + // Wrapper function to fetch only studio home data (without fetching courses) + return fetchStudioHomeData('', false, {}, false, false); +} + function fetchLibraryData() { return async (dispatch) => { dispatch(updateLoadingStatuses({ libraryLoadingStatus: RequestStatus.IN_PROGRESS })); @@ -91,6 +104,7 @@ function requestCourseCreatorQuery() { export { fetchStudioHomeData, + fetchOnlyStudioHomeData, fetchLibraryData, requestCourseCreatorQuery, handleDeleteNotificationQuery,