From 6553c4afd9c244f1d9f0933f245ab03d1e90a294 Mon Sep 17 00:00:00 2001 From: Super12138 <70494801+Super12138@users.noreply.github.com> Date: Mon, 13 Jan 2025 18:39:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BC=96=E8=BE=91=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E6=97=B6=E6=97=8B=E8=BD=AC=E5=B1=8F=E5=B9=95=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8E=9F=E5=BE=85=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/super12138/todo/ui/pages/main/MainPage.kt | 14 +++++++------- .../super12138/todo/ui/viewmodels/MainViewModel.kt | 8 ++++++++ 2 files changed, 15 insertions(+), 7 deletions(-) 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 76507c8..639a108 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 @@ -49,7 +49,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) { } } - var selectedTodoItem by remember { mutableStateOf(null) } + val selectedEditTodoItem = viewModel.selectedEditTodoItem var openBottomSheet by rememberSaveable { mutableStateOf(false) } val bottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) val scope = rememberCoroutineScope() @@ -121,7 +121,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) { list = toDoList.value.filter { item -> !item.isCompleted }, onItemClick = { item -> openBottomSheet = true - selectedTodoItem = item + viewModel.setEditTodoItem(item) }, onItemChecked = { item -> item.apply { @@ -158,7 +158,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) { list = toDoList.value.filter { item -> !item.isCompleted }, onItemClick = { item -> openBottomSheet = true - selectedTodoItem = item + viewModel.setEditTodoItem(item) }, onItemChecked = { item -> item.apply { @@ -186,11 +186,11 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) { sheetState = bottomSheetState, onDismissRequest = { openBottomSheet = false - selectedTodoItem = null + viewModel.setEditTodoItem(null) }, - toDo = selectedTodoItem, + toDo = selectedEditTodoItem, onSave = { toDo -> - selectedTodoItem = null + viewModel.setEditTodoItem(null) viewModel.addTodo(toDo) scope .launch { bottomSheetState.hide() } @@ -201,7 +201,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) { } }, onClose = { - selectedTodoItem = null + viewModel.setEditTodoItem(null) scope .launch { bottomSheetState.hide() } .invokeOnCompletion { diff --git a/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt b/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt index 5bdd54e..06e288b 100644 --- a/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt +++ b/app/src/main/kotlin/cn/super12138/todo/ui/viewmodels/MainViewModel.kt @@ -1,6 +1,8 @@ package cn.super12138.todo.ui.viewmodels +import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import cn.super12138.todo.logic.Repository @@ -10,6 +12,8 @@ import kotlinx.coroutines.launch class MainViewModel : ViewModel() { val toDos: Flow> = Repository.getAllTodos() + var selectedEditTodoItem by mutableStateOf(null) + private set val showConfetti = mutableStateOf(false) fun addTodo(toDo: TodoEntity) { @@ -27,4 +31,8 @@ class MainViewModel : ViewModel() { fun playConfetti() { showConfetti.value = true } + + fun setEditTodoItem(toDo: TodoEntity?) { + selectedEditTodoItem = toDo + } } \ No newline at end of file