From b3cb96e00d4b40b1a9baa351622056459aa4d028 Mon Sep 17 00:00:00 2001 From: Sasha Karlovich Date: Thu, 20 Feb 2025 16:06:39 +0300 Subject: [PATCH] fix: set proper active course having alias in url (#2600) --- .../Course/contexts/ActiveCourseContext.tsx | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/client/src/modules/Course/contexts/ActiveCourseContext.tsx b/client/src/modules/Course/contexts/ActiveCourseContext.tsx index b7b53d3b6b..e11dcc29fb 100644 --- a/client/src/modules/Course/contexts/ActiveCourseContext.tsx +++ b/client/src/modules/Course/contexts/ActiveCourseContext.tsx @@ -32,21 +32,23 @@ export const ActiveCourseProvider = ({ children }: Props) => { const alias = router.query.course; const [storageCourseId] = useLocalStorage('activeCourseId'); const [activeCourse, setActiveCourse] = useState(); + const [loading, setLoading] = useState(true); - const { error, loading } = useAsync(async () => { - if (!coursesCache) { - coursesCache = await new UserService().getCourses(); - } - - const course = - coursesCache.find(course => course.alias === alias) ?? - coursesCache.find(course => course.id === storageCourseId) ?? - coursesCache[0]; + const { error } = useAsync(async () => { + if (router.isReady) { + if (!coursesCache) { + coursesCache = await new UserService().getCourses(); + } - setActiveCourse(course); + const course = + coursesCache.find(course => course.alias === alias) ?? + coursesCache.find(course => course.id === storageCourseId) ?? + coursesCache[0]; - return course; - }, []); + setCourse(course); + setLoading(false); + } + }, [router.isReady]); const setCourse = (course: ProfileCourseDto) => { setActiveCourse(course);