Untitled
unknown
plain_text
7 days ago
3.8 kB
4
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