Peter
10/28/2024, 4:33 PMPeter
10/28/2024, 4:34 PMstateLoadingCountdownFinishedCountdownCountdownimport androidx.compose.animation.Crossfade
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.tooling.preview.Preview
 import kotlinx.coroutines.delay
 import kotlin.time.Duration
 import kotlin.time.Duration.Companion.seconds
 
 sealed interface State {
     data object Loading: State
     data class Countdown(val duration: Duration) : State
     data object Finished: State
 }
 
 @Preview
 @Composable
 private fun Preview() {
     var state: State by remember { mutableStateOf(State.Loading) }
 
     LaunchedEffect(Unit) {
         delay(2.seconds)
 
         (3 downTo 0).forEach {
             state = State.Countdown(it.seconds)
             delay(1.seconds)
         }
         
         state = State.Finished
     }
     
     Crossfade(state, label = "your mom") { 
         when (state) {
             is State.Countdown -> TODO()
             State.Finished -> TODO()
             State.Loading -> TODO()
         }
     }
 }Stylianos Gakis
10/28/2024, 4:45 PMPeter
10/28/2024, 4:46 PM