diff --git a/composeApp/src/androidMain/kotlin/com/github/jvsena42/echo/ui/decks/DeckDetailScreen.kt b/composeApp/src/androidMain/kotlin/com/github/jvsena42/echo/ui/decks/DeckDetailScreen.kt
index 5648864..f93a1cb 100644
--- a/composeApp/src/androidMain/kotlin/com/github/jvsena42/echo/ui/decks/DeckDetailScreen.kt
+++ b/composeApp/src/androidMain/kotlin/com/github/jvsena42/echo/ui/decks/DeckDetailScreen.kt
@@ -174,6 +174,15 @@ fun DeckDetailScreen(
onDismiss = onDismissDelete,
)
}
+ if (state.isDeleting) {
+ Box(
+ modifier = Modifier
+ .fillMaxSize()
+ .background(colors.surfacePrimary),
+ ) {
+ EchoLoadingScreen(message = stringResource(R.string.deck_detail_deleting))
+ }
+ }
}
}
}
diff --git a/composeApp/src/androidMain/res/values/strings.xml b/composeApp/src/androidMain/res/values/strings.xml
index 925ca1e..d20ae90 100644
--- a/composeApp/src/androidMain/res/values/strings.xml
+++ b/composeApp/src/androidMain/res/values/strings.xml
@@ -39,6 +39,7 @@
Something went wrong
Retry
Opening deck…
+ Deleting deck…
Start studying · %1$d due
Study this deck
Back
diff --git a/shared/src/commonMain/kotlin/com/github/jvsena42/echo/presentation/decks/DeckDetailViewModel.kt b/shared/src/commonMain/kotlin/com/github/jvsena42/echo/presentation/decks/DeckDetailViewModel.kt
index 4f6d5a3..8b39448 100644
--- a/shared/src/commonMain/kotlin/com/github/jvsena42/echo/presentation/decks/DeckDetailViewModel.kt
+++ b/shared/src/commonMain/kotlin/com/github/jvsena42/echo/presentation/decks/DeckDetailViewModel.kt
@@ -119,7 +119,7 @@ class DeckDetailViewModel(
fun onConfirmDelete() {
val current = _state.value as? DeckDetailUiState.Content ?: return
- _state.value = current.copy(showDeleteConfirm = false)
+ _state.value = current.copy(showDeleteConfirm = false, isDeleting = true)
scope.launch {
Log.d(TAG, "onConfirmDelete: deckId=$deckId")
deckRepository.delete(deckId)
@@ -208,6 +208,7 @@ sealed interface DeckDetailUiState {
val masteredPercent: String,
val cardPreviews: List,
val showDeleteConfirm: Boolean = false,
+ val isDeleting: Boolean = false,
) : DeckDetailUiState
data class Error(val message: String) : DeckDetailUiState
}