From fff67e44d6702d6d73842b7ac824c763f519b448 Mon Sep 17 00:00:00 2001 From: "tomtom.bot" <321199632+tomtom-bot7@users.noreply.github.com> Date: Fri, 4 Sep 2026 09:30:40 +0000 Subject: [PATCH] fix(ui): handle empty starred list without NaN Guard progress percent when total is 0, and show a clear empty-state message (e.g. No problems starred) instead of Loading... --- src/renderer/src/components/HomeView.svelte | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/components/HomeView.svelte b/src/renderer/src/components/HomeView.svelte index 54b3c24..343b863 100644 --- a/src/renderer/src/components/HomeView.svelte +++ b/src/renderer/src/components/HomeView.svelte @@ -13,6 +13,7 @@ loadCategories, setProblemBlocked, setProblemStarred, + isLoading, filterUIState, initFilterUIState, setFilterUIState, @@ -201,9 +202,16 @@ ) const progressPercentage = $derived( - $stats ? Math.round(($stats.practiced / $stats.total) * 100) : 0 + $stats && $stats.total > 0 ? Math.round(($stats.practiced / $stats.total) * 100) : 0 ) + const emptyListMessage = $derived.by(() => { + if ($isLoading) return 'Loading...' + if (hasActiveFilters) return 'No problems match your filters' + if ($currentProblemSet === 'starred') return 'No problems starred' + return 'No problems found' + }) + // Current session quota = min(daily review preference, total due today) const sessionQuota = $derived( Math.min($dailyReviewCount, $todayReviewsCount + $completedInSession) @@ -570,7 +578,7 @@ {:else}
- {hasActiveFilters ? 'No problems match your filters' : 'Loading...'} + {emptyListMessage}
{/each}