diff --git a/src/lib/api/auth.ts b/src/lib/api/auth.ts index 92f362a..e87c453 100644 --- a/src/lib/api/auth.ts +++ b/src/lib/api/auth.ts @@ -160,7 +160,7 @@ async function executeRefresh(refreshTokenStr: string): Promise { .getState() .setError("Session expired. Please reconnect your wallet."); } - return useAuthStore.getState().jwt; + return null; } finally { inFlightRefreshPromise = null; } diff --git a/src/lib/api/courses.ts b/src/lib/api/courses.ts index 968b4d1..f5555ec 100644 --- a/src/lib/api/courses.ts +++ b/src/lib/api/courses.ts @@ -235,7 +235,7 @@ export async function getCourseModules( signal?: AbortSignal ): Promise { const course = await getCourse(courseId, jwt, signal); - return [...course.modules].sort((a, b) => a.order - b.order); + return [...(course.modules ?? [])].sort((a, b) => a.order - b.order); } /** diff --git a/src/lib/hooks/use-courses.ts b/src/lib/hooks/use-courses.ts index 512f9b3..76b5229 100644 --- a/src/lib/hooks/use-courses.ts +++ b/src/lib/hooks/use-courses.ts @@ -178,9 +178,12 @@ export function useCourses() { try { const data = await loadEnrollments(jwt, controller.signal); setEnrollments(data); + setError(null); } catch (err) { if (isAbortError(err)) return; - console.error("Failed to fetch enrollments:", err); + setError( + err instanceof Error ? err.message : "Failed to fetch enrollments" + ); } }, [jwt, setEnrollments]); diff --git a/src/lib/hooks/use-rewards.ts b/src/lib/hooks/use-rewards.ts index b77ff8b..1c93675 100644 --- a/src/lib/hooks/use-rewards.ts +++ b/src/lib/hooks/use-rewards.ts @@ -116,9 +116,11 @@ export function useRewards() { setHistory(cached.history); setClaimables(cached.claimables); } + setError(null); } catch (e) { if (isAbortError(e)) return; console.error("Failed to fetch rewards:", e); + setError(e instanceof Error ? e.message : "Failed to fetch rewards"); } finally { setLoading(false); }