• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
DebouncedCircularProgressIndicatornull18 fun 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 }