feat(#13): add pull-to-refresh to HermesScaffold (#14)

- HermesScaffold: added isRefreshing param, wraps content in PullToRefreshBox when onRefresh is set
- All 16 data screens: pass isRefreshing = state.isLoading
- Initial loading only shows full-screen LoadingState when data is empty (no spinner over existing content)
- AchievementsScreen already had the correct pattern, just needed isRefreshing param

Co-authored-by: M57 <hy4ri@users.noreply.github.com>
This commit is contained in:
M57
2026-06-18 18:58:08 +03:00
committed by GitHub
co-authored by M57
parent d37de1d223
commit 4892572bcc
18 changed files with 56 additions and 23 deletions
@@ -74,10 +74,11 @@ fun SkillsScreen(
HermesScaffold(
title = { Text("Skills") },
onOpenDrawer = onOpenDrawer,
isRefreshing = state.isLoading,
onRefresh = { viewModel.loadSkills() },
) {
when {
state.isLoading -> LoadingState()
state.isLoading && state.skills.isEmpty() -> LoadingState()
state.errorMessage != null ->
ErrorState(
message = state.errorMessage ?: "Unknown error",