package co.electriccoin.zcash.ui.design.component import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.size import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.LinearProgressIndicator import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import co.electriccoin.zcash.ui.design.theme.ZcashTheme @Preview @Composable private fun CircularScreenProgressIndicatorComposablePreview() { ZcashTheme(forceDarkMode = false) { GradientSurface { Column { CircularScreenProgressIndicator() CircularMidProgressIndicator() } } } } @Composable fun CircularScreenProgressIndicator(modifier: Modifier = Modifier) { Box( modifier = Modifier .fillMaxSize() .then(modifier), contentAlignment = Alignment.Center ) { CircularProgressIndicator( color = ZcashTheme.colors.circularProgressBarScreen, modifier = Modifier .size(ZcashTheme.dimens.circularScreenProgressWidth) ) } } @Composable fun CircularMidProgressIndicator(modifier: Modifier = Modifier) { CircularProgressIndicator( color = ZcashTheme.colors.circularProgressBarScreen, strokeWidth = 3.dp, modifier = Modifier .size(ZcashTheme.dimens.circularMidProgressWidth) .then(modifier) ) } @Composable fun CircularSmallProgressIndicator(modifier: Modifier = Modifier) { CircularProgressIndicator( color = ZcashTheme.colors.circularProgressBarSmall, strokeWidth = 2.dp, modifier = Modifier .size(ZcashTheme.dimens.circularSmallProgressWidth) .then(modifier) ) } @Preview @Composable private fun LinearProgressIndicatorComposablePreview() { ZcashTheme(forceDarkMode = false) { GradientSurface { @Suppress("MagicNumber") LinearProgressIndicator(0.75f) } } } @Composable fun LinearProgressIndicator( progress: Float, modifier: Modifier = Modifier ) { LinearProgressIndicator( progress = progress, color = ZcashTheme.colors.linearProgressBarBackground, trackColor = ZcashTheme.colors.linearProgressBarTrack, strokeCap = StrokeCap.Butt, modifier = Modifier .fillMaxWidth() .height(ZcashTheme.dimens.linearProgressHeight) .then(modifier) ) }