From d93cae0816aec4b6dd8f5f39d9d225853d37dec5 Mon Sep 17 00:00:00 2001 From: Rene Luria Date: Wed, 8 Jul 2026 18:07:21 +0200 Subject: [PATCH] fix: trigger loadAccounts() on auth and loadCachedSchedule() on account selection The schedule screen was never loading data because no LaunchedEffect called loadAccounts() when the user became authenticated. Now: - App.kt: calls scheduleViewModel.loadAccounts() when authState becomes Authenticated - ScheduleScreen.kt: calls loadCachedSchedule() when selectedAccount is set --- composeApp/src/commonMain/kotlin/ch/parano/myice/App.kt | 3 +++ .../kotlin/ch/parano/myice/ui/screens/ScheduleScreen.kt | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/composeApp/src/commonMain/kotlin/ch/parano/myice/App.kt b/composeApp/src/commonMain/kotlin/ch/parano/myice/App.kt index 7ee5cb6..a0414d5 100644 --- a/composeApp/src/commonMain/kotlin/ch/parano/myice/App.kt +++ b/composeApp/src/commonMain/kotlin/ch/parano/myice/App.kt @@ -54,6 +54,9 @@ fun App( is AuthState.Unauthenticated -> Screen.Login AuthState.Loading -> currentScreen } + if (authState is AuthState.Authenticated) { + scheduleViewModel.loadAccounts() + } } MyIceTheme { diff --git a/composeApp/src/commonMain/kotlin/ch/parano/myice/ui/screens/ScheduleScreen.kt b/composeApp/src/commonMain/kotlin/ch/parano/myice/ui/screens/ScheduleScreen.kt index 51a8b74..f3ccfee 100644 --- a/composeApp/src/commonMain/kotlin/ch/parano/myice/ui/screens/ScheduleScreen.kt +++ b/composeApp/src/commonMain/kotlin/ch/parano/myice/ui/screens/ScheduleScreen.kt @@ -17,6 +17,7 @@ import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -44,6 +45,12 @@ fun ScheduleScreen( val scheduleState by scheduleViewModel.state.collectAsState() val authState by authViewModel.state.collectAsState() + LaunchedEffect(scheduleState.selectedAccount) { + if (scheduleState.selectedAccount != null && scheduleState.events.isEmpty()) { + scheduleViewModel.loadCachedSchedule() + } + } + Scaffold( topBar = { TopAppBar(