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.
This commit is contained in:
madresebanoo
2026-09-02 15:04:31 +04:30
parent fb629a54a5
commit c17dbe2ae9
+12 -4
View File
@@ -8,15 +8,22 @@ export const studentCoursesKeys = {
detail: (id) => ['student', 'courses', 'detail', id], detail: (id) => ['student', 'courses', 'detail', id],
} }
const withCoverImage = (course) => ({
...course,
image: course.image ?? course.coverUrl ?? null,
})
const adaptCourseResponse = (response) => { const adaptCourseResponse = (response) => {
const course = response?.data ?? response const course = response?.data ?? response
if (!course) return course if (!course) return course
return { return withCoverImage(course)
...course,
image: course.image ?? course.coverUrl ?? null,
}
} }
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 = {}) => export const useStudentCoursesListQuery = (filtersRef, paginationRef, options = {}) =>
useQuery({ useQuery({
queryKey: ['student', 'courses', 'list', filtersRef, paginationRef], queryKey: ['student', 'courses', 'list', filtersRef, paginationRef],
@@ -25,6 +32,7 @@ export const useStudentCoursesListQuery = (filtersRef, paginationRef, options =
...cleanFilters(filtersRef.value), ...cleanFilters(filtersRef.value),
...paginationRef.value, ...paginationRef.value,
}), }),
select: adaptCourseListResponse,
...options, ...options,
}) })