From b3c36e97d74eae902f7ede7e8582c3a4e430a2c1 Mon Sep 17 00:00:00 2001 From: Super12138 <70494801+Super12138@users.noreply.github.com> Date: Thu, 6 Feb 2025 10:27:20 +0800 Subject: [PATCH] =?UTF-8?q?refactor(main):=20=E7=AE=80=E5=8C=96=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=E5=88=A0=E9=99=A4=E7=A1=AE=E8=AE=A4=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E6=A1=86=E7=9A=84=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../super12138/todo/ui/pages/main/MainPage.kt | 35 +++++++++----- .../components/TodoDeleteConfirmDialog.kt | 47 ------------------- 2 files changed, 22 insertions(+), 60 deletions(-) delete mode 100644 app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoDeleteConfirmDialog.kt diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt index faa2612..f22c651 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/MainPage.kt @@ -18,7 +18,10 @@ import androidx.compose.foundation.layout.ime import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.safeContent import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Delete import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -29,10 +32,12 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.window.core.layout.WindowWidthSizeClass +import cn.super12138.todo.R import cn.super12138.todo.constants.Constants import cn.super12138.todo.logic.database.TodoEntity -import cn.super12138.todo.ui.pages.main.components.TodoDeleteConfirmDialog +import cn.super12138.todo.ui.components.BasicDialog import cn.super12138.todo.ui.pages.main.components.TodoFAB import cn.super12138.todo.ui.pages.main.components.TodoTopAppBar import cn.super12138.todo.ui.viewmodels.MainViewModel @@ -203,16 +208,20 @@ fun MainPage( } } } - if (showDeleteConfirmDialog) { - TodoDeleteConfirmDialog( - onConfirm = { - showDeleteConfirmDialog = false - viewModel.apply { - deleteSelectedTodo() - } - }, - onDismiss = { showDeleteConfirmDialog = false }, - deleteTodoCount = selectedTodoIds.value.size - ) - } + + BasicDialog( + visible = showDeleteConfirmDialog, + icon = Icons.Outlined.Delete, + title = stringResource(R.string.title_warning), + text = { + Text(stringResource(R.string.tip_delete_task, selectedTodoIds.value.size)) + }, + confirmButton = stringResource(R.string.action_confirm), + dismissButton = stringResource(R.string.action_cancel), + onConfirm = { + showDeleteConfirmDialog = false + viewModel.deleteSelectedTodo() + }, + onDismiss = { showDeleteConfirmDialog = false } + ) } \ No newline at end of file diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoDeleteConfirmDialog.kt b/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoDeleteConfirmDialog.kt deleted file mode 100644 index 27c5817..0000000 --- a/app/src/main/kotlin/cn/super12138/todo/ui/pages/main/components/TodoDeleteConfirmDialog.kt +++ /dev/null @@ -1,47 +0,0 @@ -package cn.super12138.todo.ui.pages.main.components - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.outlined.Delete -import androidx.compose.material3.AlertDialog -import androidx.compose.material3.FilledTonalButton -import androidx.compose.material3.Icon -import androidx.compose.material3.Text -import androidx.compose.material3.TextButton -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import cn.super12138.todo.R - -@Composable -fun TodoDeleteConfirmDialog( - onConfirm: () -> Unit, - onDismiss: () -> Unit, - deleteTodoCount: Int, - modifier: Modifier = Modifier -) { - AlertDialog( - icon = { - Icon( - imageVector = Icons.Outlined.Delete, - contentDescription = stringResource(R.string.action_delete) - ) - }, - title = { - Text(stringResource(R.string.title_warning)) - }, - text = { - Text(stringResource(R.string.tip_delete_task, deleteTodoCount)) - }, - confirmButton = { - FilledTonalButton(onClick = onConfirm) { - Text(stringResource(R.string.action_confirm)) - } - }, - dismissButton = { - TextButton(onClick = onDismiss) { - Text(stringResource(R.string.action_cancel)) - } - }, - onDismissRequest = onDismiss - ) -} \ No newline at end of file