kopia lustrzana https://github.com/vitorpamplona/amethyst
33 wiersze
1.1 KiB
Kotlin
33 wiersze
1.1 KiB
Kotlin
package com.vitorpamplona.amethyst.ui.screen
|
|
|
|
import androidx.compose.animation.Crossfade
|
|
import androidx.compose.foundation.layout.Column
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.getValue
|
|
import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
|
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
|
|
|
@OptIn(ExperimentalLifecycleComposeApi::class)
|
|
@Composable
|
|
fun AccountScreen(accountStateViewModel: AccountStateViewModel) {
|
|
val accountState by accountStateViewModel.accountContent.collectAsStateWithLifecycle()
|
|
|
|
Column() {
|
|
Crossfade(targetState = accountState) { state ->
|
|
when (state) {
|
|
is AccountState.LoggedOff -> {
|
|
LoginPage(accountStateViewModel)
|
|
}
|
|
is AccountState.LoggedIn -> {
|
|
MainScreen(AccountViewModel(state.account), accountStateViewModel)
|
|
}
|
|
is AccountState.LoggedInViewOnly -> {
|
|
MainScreen(AccountViewModel(state.account), accountStateViewModel)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|