From 1cfd48f35a3b77d0fc191b73aa5e9f3891ee3b85 Mon Sep 17 00:00:00 2001 From: madresebanoo Date: Wed, 2 Sep 2026 15:04:31 +0430 Subject: [PATCH] fix(courses): normalize "my courses" list response and cover image The list query returned the raw paginated payload unmapped, so current/ended filtering and pagination metadata didn't work; align it with the same coverUrl fallback the detail query already used. --- src/services/query/student-courses.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/services/query/student-courses.js b/src/services/query/student-courses.js index 2fe1637..ce7084b 100644 --- a/src/services/query/student-courses.js +++ b/src/services/query/student-courses.js @@ -8,15 +8,22 @@ export const studentCoursesKeys = { detail: (id) => ['student', 'courses', 'detail', id], } +const withCoverImage = (course) => ({ + ...course, + image: course.image ?? course.coverUrl ?? null, +}) + const adaptCourseResponse = (response) => { const course = response?.data ?? response if (!course) return course - return { - ...course, - image: course.image ?? course.coverUrl ?? null, - } + return withCoverImage(course) } +const adaptCourseListResponse = (response) => ({ + data: (response?.data?.items ?? response?.data ?? []).map((course) => withCoverImage(course)), + meta: response?.data?.meta ?? response?.meta, +}) + export const useStudentCoursesListQuery = (filtersRef, paginationRef, options = {}) => useQuery({ queryKey: ['student', 'courses', 'list', filtersRef, paginationRef], @@ -25,6 +32,7 @@ export const useStudentCoursesListQuery = (filtersRef, paginationRef, options = ...cleanFilters(filtersRef.value), ...paginationRef.value, }), + select: adaptCourseListResponse, ...options, })