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 }