diff --git a/app/src/main/java/com/hippo/ehviewer/ui/widget/Dialog.kt b/app/src/main/java/com/hippo/ehviewer/ui/widget/Dialog.kt index 57e0fd73e..a43477863 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/widget/Dialog.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/widget/Dialog.kt @@ -28,10 +28,16 @@ class DialogState : DialogScope { } suspend fun show(block: @Composable DialogScope.() -> Unit) { - suspendCancellableCoroutine { + return suspendCancellableCoroutine { cont -> + cont.invokeOnCancellation { dismiss() } content = { - AlertDialog(onDismissRequest = { dismiss() }, confirmButton = { /*TODO*/ }) - block() + AlertDialog( + onDismissRequest = { + dismiss() + cont.resume(Unit) + }, + content = { block() }, + ) } } }