Coverage Summary for Class: SurferFullScreenLoaderKt (com.georgeci.moneysurfer.uikit.components)
| Class |
Class, %
|
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| SurferFullScreenLoaderKt |
100%
(1/1)
|
50%
(1/2)
|
30%
(3/10)
|
94.7%
(18/19)
|
87.2%
(204/234)
|
package com.georgeci.moneysurfer.uikit.components
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.size
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.georgeci.moneysurfer.uikit.preview.SurferComponentPreview
import com.georgeci.moneysurfer.uikit.theme.AppTheme
@Composable
fun SurferFullScreenLoader(
modifier: Modifier = Modifier,
scrimColor: Color = AppTheme.materialColors.scrim.copy(alpha = 0.32f),
) {
Box(
modifier = modifier
.background(scrimColor)
.clickable(
interactionSource = remember { MutableInteractionSource() },
indication = null,
onClick = {},
),
contentAlignment = Alignment.Center,
) {
Surface(
shape = AppTheme.shapes.large,
color = AppTheme.materialColors.surface,
tonalElevation = 6.dp,
shadowElevation = 8.dp,
) {
Box(
modifier = Modifier.size(72.dp),
contentAlignment = Alignment.Center,
) {
CircularProgressIndicator(
color = AppTheme.materialColors.primary,
trackColor = AppTheme.materialColors.surfaceVariant,
)
}
}
}
}
@Preview
@Composable
private fun SurferFullScreenLoaderPreview() {
SurferComponentPreview {
SurferFullScreenLoader(modifier = Modifier.size(width = 240.dp, height = 360.dp))
}
}