PDfGeneration: display error message

This commit is contained in:
Pierre-Yves Nicolas
2025-07-08 10:00:49 +02:00
parent 320cd5b1bf
commit 196b1b3c3e

View File

@@ -97,7 +97,6 @@ fun PdfGenerationBottomSheetWrapper(
} }
} }
// TODO Handle error in PDF generation
@Composable @Composable
fun PdfGenerationBottomSheet( fun PdfGenerationBottomSheet(
filename: String, filename: String,
@@ -159,7 +158,9 @@ fun PdfGenerationBottomSheet(
if (uiState.savedFileUri != null) { if (uiState.savedFileUri != null) {
SavePdfBar(onOpen) 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 @Composable
private fun CloseButton(onDismiss: () -> Unit) { private fun CloseButton(onDismiss: () -> Unit) {
Box(Modifier.fillMaxWidth()) { Box(Modifier.fillMaxWidth()) {
@@ -253,7 +267,6 @@ fun PreviewPdfGenerationDialogDuringGeneration() {
fun PreviewPdfGenerationDialogAfterGeneration() { fun PreviewPdfGenerationDialogAfterGeneration() {
PreviewToCustomize( PreviewToCustomize(
uiState = PdfGenerationUiState( uiState = PdfGenerationUiState(
isGenerating = false,
generatedPdf = GeneratedPdf("file://fake.pdf".toUri(), 442897L, 3) generatedPdf = GeneratedPdf("file://fake.pdf".toUri(), 442897L, 3)
) )
) )
@@ -264,13 +277,22 @@ fun PreviewPdfGenerationDialogAfterGeneration() {
fun PreviewPdfGenerationDialogAfterSave() { fun PreviewPdfGenerationDialogAfterSave() {
PreviewToCustomize( PreviewToCustomize(
uiState = PdfGenerationUiState( uiState = PdfGenerationUiState(
isGenerating = false,
generatedPdf = GeneratedPdf("file://fake.pdf".toUri(), 442897L, 3), generatedPdf = GeneratedPdf("file://fake.pdf".toUri(), 442897L, 3),
savedFileUri = "file:///fake".toUri() savedFileUri = "file:///fake".toUri()
) )
) )
} }
@Preview(showBackground = true)
@Composable
fun PreviewPdfGenerationDialogWithError() {
PreviewToCustomize(
uiState = PdfGenerationUiState(
errorMessage = "PDF generation failed"
)
)
}
@Composable @Composable
fun PreviewToCustomize(uiState: PdfGenerationUiState) { fun PreviewToCustomize(uiState: PdfGenerationUiState) {
MyScanTheme { MyScanTheme {