From 7fb8e442069588e5154fb77d1a732f2e7471ebbd Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Thu, 15 Jan 2026 14:51:24 -0500 Subject: [PATCH] chore: load public courses repeatedly (#5205) --- .../login/pages/public_courses_page.dart | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/pangea/login/pages/public_courses_page.dart b/lib/pangea/login/pages/public_courses_page.dart index 6ffd606c4..41a10a86a 100644 --- a/lib/pangea/login/pages/public_courses_page.dart +++ b/lib/pangea/login/pages/public_courses_page.dart @@ -53,10 +53,10 @@ class PublicCoursesPageState extends State { _loadCourses(); } - void setTargetLanguageFilter(LanguageModel? language, {bool reload = true}) { + void setTargetLanguageFilter(LanguageModel? language) { if (targetLanguageFilter?.langCodeShort == language?.langCodeShort) return; setState(() => targetLanguageFilter = language); - if (reload) _loadCourses(); + _loadCourses(); } List get filteredCourses { @@ -95,13 +95,8 @@ class PublicCoursesPageState extends State { return filtered; } - Future _loadCourses() async { + Future _loadPublicSpaces() async { try { - setState(() { - loading = true; - error = null; - }); - final resp = await Matrix.of(context).client.requestPublicCourses( since: nextBatch, ); @@ -123,6 +118,21 @@ class PublicCoursesPageState extends State { }, ); } + } + + Future _loadCourses() async { + setState(() { + loading = true; + error = null; + }); + + await _loadPublicSpaces(); + + int timesLoaded = 0; + while (error == null && timesLoaded < 5 && nextBatch != null) { + await _loadPublicSpaces(); + timesLoaded++; + } try { final resp = await CoursePlansRepo.search(