diff --git a/app/src/main/java/org/mydomain/myscan/view/PdfGenerationBottomSheet.kt b/app/src/main/java/org/mydomain/myscan/view/PdfGenerationBottomSheet.kt index 0d9ab37..85c9f27 100644 --- a/app/src/main/java/org/mydomain/myscan/view/PdfGenerationBottomSheet.kt +++ b/app/src/main/java/org/mydomain/myscan/view/PdfGenerationBottomSheet.kt @@ -97,7 +97,6 @@ fun PdfGenerationBottomSheetWrapper( } } -// TODO Handle error in PDF generation @Composable fun PdfGenerationBottomSheet( filename: String, @@ -159,7 +158,9 @@ fun PdfGenerationBottomSheet( if (uiState.savedFileUri != null) { SavePdfBar(onOpen) } - + if (uiState.errorMessage != null) { + ErrorBar(uiState.errorMessage) + } } } @@ -215,6 +216,19 @@ private fun SavePdfBar(onOpen: () -> Unit) { } } +@Composable +private fun ErrorBar(errorMessage: String) { + Text( + text = "Error: $errorMessage", + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.error, + modifier = Modifier + .fillMaxWidth() + .background(MaterialTheme.colorScheme.errorContainer) + .padding(16.dp), + ) +} + @Composable private fun CloseButton(onDismiss: () -> Unit) { Box(Modifier.fillMaxWidth()) { @@ -253,7 +267,6 @@ fun PreviewPdfGenerationDialogDuringGeneration() { fun PreviewPdfGenerationDialogAfterGeneration() { PreviewToCustomize( uiState = PdfGenerationUiState( - isGenerating = false, generatedPdf = GeneratedPdf("file://fake.pdf".toUri(), 442897L, 3) ) ) @@ -264,13 +277,22 @@ fun PreviewPdfGenerationDialogAfterGeneration() { fun PreviewPdfGenerationDialogAfterSave() { PreviewToCustomize( uiState = PdfGenerationUiState( - isGenerating = false, generatedPdf = GeneratedPdf("file://fake.pdf".toUri(), 442897L, 3), savedFileUri = "file:///fake".toUri() ) ) } +@Preview(showBackground = true) +@Composable +fun PreviewPdfGenerationDialogWithError() { + PreviewToCustomize( + uiState = PdfGenerationUiState( + errorMessage = "PDF generation failed" + ) + ) +} + @Composable fun PreviewToCustomize(uiState: PdfGenerationUiState) { MyScanTheme {