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(