Untitled
unknown
plain_text
9 months ago
3.8 kB
8
Indexable
@OptIn(ExperimentalMaterial3Api::class)
@Composable
internal fun BottomAlertDialog(
title: String = stringResource(R.string.unexpected_error_happened),
description: String = stringResource(R.string.please_try_again),
onAction: (BirBonusCabinetUiAction) -> Unit
) {
val bottomSheetState = rememberModalBottomSheetState(
skipPartiallyExpanded = true,
confirmValueChange = { false }
)
val coroutineScope = rememberCoroutineScope()
ModalBottomSheet(
modifier = Modifier
.fillMaxHeight(),
sheetState = bottomSheetState,
containerColor = dsColorWhite,
dragHandle = null,
onDismissRequest = { onAction(BirBonusCabinetUiAction.OnErrorScreenButtonClicked) }
) {
Column(
modifier = Modifier
.background(color = dsColorWhite)
.fillMaxSize()
.padding(
start = dsPaddingMedium,
end = dsPaddingMedium,
bottom = dsPaddingLargeX
),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Spacer(modifier = Modifier.weight(1f))
ErrorMessageComponent(
modifier = Modifier,
title = title,
errorText = description
)
Spacer(modifier = Modifier.weight(1f))
MainButton(
onClick = {
coroutineScope.launch { bottomSheetState.hide() }
onAction(BirBonusCabinetUiAction.OnErrorScreenButtonClicked)
}
)
}
}
}
@Composable
fun ErrorAlertDialog(
title: String = stringResource(R.string.unexpected_error_happened),
description: String = stringResource(R.string.please_try_again),
onAction: () -> Unit
) {
Dialog(
onDismissRequest = { },
properties = DialogProperties(usePlatformDefaultWidth = false)
) {
Column(
modifier = Modifier
.background(color = dsColorWhite)
.fillMaxSize()
.padding(
start = dsPaddingMedium,
end = dsPaddingMedium,
bottom = dsPaddingLargeX
),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Spacer(modifier = Modifier.weight(1f))
ErrorMessageComponent(
modifier = Modifier,
title = title,
errorText = description
)
Spacer(modifier = Modifier.weight(1f))
MainButton(
onClick = { onAction() }
)
}
}
}
@Composable
@Preview
private fun FullScreenBottomErrorDialogPreview() {
ErrorAlertDialog(onAction = { })
}
@Composable
private fun ErrorMessageComponent(
modifier: Modifier = Modifier,
title: String = stringResource(R.string.unexpected_error_happened),
errorText: String = stringResource(R.string.please_try_again)
) {
Column(
modifier = modifier
.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Image(
painter = painterResource(R.drawable.ic_exclamation),
contentDescription = null
)
Spacer(modifier = Modifier.height(dsSpacer16))
Text(
text = title,
fontSize = dsTextSizeGiant,
style = MaterialTheme.typography.dsH1,
)
Spacer(modifier = Modifier.height(dsSpacer8))
Text(
text = errorText,
fontSize = dsTextSizeMedium
)
}
}Editor is loading...
Leave a Comment