1 package com.airbnb.lottie.sample.compose.composables 2 3 import androidx.compose.material.CircularProgressIndicator 4 import androidx.compose.material.MaterialTheme 5 import androidx.compose.material.ProgressIndicatorDefaults 6 import androidx.compose.runtime.Composable 7 import androidx.compose.runtime.LaunchedEffect 8 import androidx.compose.runtime.getValue 9 import androidx.compose.runtime.mutableStateOf 10 import androidx.compose.runtime.remember 11 import androidx.compose.runtime.setValue 12 import androidx.compose.ui.Modifier 13 import androidx.compose.ui.graphics.Color 14 import androidx.compose.ui.unit.Dp 15 import kotlinx.coroutines.delay 16 17 @Composable DebouncedCircularProgressIndicatornull18fun DebouncedCircularProgressIndicator( 19 modifier: Modifier = Modifier, 20 delayMs: Long = 1_500L, 21 color: Color = MaterialTheme.colors.primary, 22 strokeWidth: Dp = ProgressIndicatorDefaults.StrokeWidth, 23 ) { 24 var readyToShow by remember { mutableStateOf(false) } 25 LaunchedEffect(readyToShow) { 26 delay(delayMs) 27 readyToShow = true 28 } 29 if (readyToShow) { 30 CircularProgressIndicator( 31 color = color, 32 strokeWidth = strokeWidth, 33 modifier = modifier 34 ) 35 } 36 }