Feat: Add fetch courses-user endpoints #1303
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #1223
What changes did you make and why did you make them?
(Delayed due to NextJS app router migration).
Previously, courses data was fetched as part of the larger
getUser
data payload on every page load viauseTypedSelector
. With this update, it's fetched separately only when needed on course and session pages, via newuseGetUserCoursesQuery
. This PR helps improve performance by reducing payload size of the main user endpoint, and provides a more focused course progress data function.Changelog:
api.tsx
: adds the GET request to the new endpoint courses-user, returns type Courses & generates a useGetUserCoursesQuery hook for components to use.CoursesPage.tsx
: fetches and courses-user data from useGetUserCoursesQuery, with skip condition for logged out users. Processes data the same as previous endpoint.coursesSlice.tsx
: adds new matcher that updates courses state when getUserCourses query is successful.SessioProgressDisplay.tsx
: migrated from useTypedSelector to useGetUserCoursesQuery to track session progress.StoryblokCoursePage.tsx
: similar updates as CoursesPage.tsxStoryblokSessionPage.tsx
: similar updates as CoursesPage.tsxTesting:
To-Do:
course-session-behavior
.Did you run tests? Share screenshot of results:
Unit & integration pass, implementing unit tests for this in a separate issue.
How did you find us? (GitHub, Google search, social media, etc.):
N/A