fix: 编辑待办时旋转屏幕无法修改原待办
This commit is contained in:
parent
0e54c94572
commit
6553c4afd9
2 changed files with 15 additions and 7 deletions
|
|
@ -49,7 +49,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var selectedTodoItem by remember { mutableStateOf<TodoEntity?>(null) }
|
val selectedEditTodoItem = viewModel.selectedEditTodoItem
|
||||||
var openBottomSheet by rememberSaveable { mutableStateOf(false) }
|
var openBottomSheet by rememberSaveable { mutableStateOf(false) }
|
||||||
val bottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
|
val bottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
|
||||||
val scope = rememberCoroutineScope()
|
val scope = rememberCoroutineScope()
|
||||||
|
|
@ -121,7 +121,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) {
|
||||||
list = toDoList.value.filter { item -> !item.isCompleted },
|
list = toDoList.value.filter { item -> !item.isCompleted },
|
||||||
onItemClick = { item ->
|
onItemClick = { item ->
|
||||||
openBottomSheet = true
|
openBottomSheet = true
|
||||||
selectedTodoItem = item
|
viewModel.setEditTodoItem(item)
|
||||||
},
|
},
|
||||||
onItemChecked = { item ->
|
onItemChecked = { item ->
|
||||||
item.apply {
|
item.apply {
|
||||||
|
|
@ -158,7 +158,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) {
|
||||||
list = toDoList.value.filter { item -> !item.isCompleted },
|
list = toDoList.value.filter { item -> !item.isCompleted },
|
||||||
onItemClick = { item ->
|
onItemClick = { item ->
|
||||||
openBottomSheet = true
|
openBottomSheet = true
|
||||||
selectedTodoItem = item
|
viewModel.setEditTodoItem(item)
|
||||||
},
|
},
|
||||||
onItemChecked = { item ->
|
onItemChecked = { item ->
|
||||||
item.apply {
|
item.apply {
|
||||||
|
|
@ -186,11 +186,11 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) {
|
||||||
sheetState = bottomSheetState,
|
sheetState = bottomSheetState,
|
||||||
onDismissRequest = {
|
onDismissRequest = {
|
||||||
openBottomSheet = false
|
openBottomSheet = false
|
||||||
selectedTodoItem = null
|
viewModel.setEditTodoItem(null)
|
||||||
},
|
},
|
||||||
toDo = selectedTodoItem,
|
toDo = selectedEditTodoItem,
|
||||||
onSave = { toDo ->
|
onSave = { toDo ->
|
||||||
selectedTodoItem = null
|
viewModel.setEditTodoItem(null)
|
||||||
viewModel.addTodo(toDo)
|
viewModel.addTodo(toDo)
|
||||||
scope
|
scope
|
||||||
.launch { bottomSheetState.hide() }
|
.launch { bottomSheetState.hide() }
|
||||||
|
|
@ -201,7 +201,7 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onClose = {
|
onClose = {
|
||||||
selectedTodoItem = null
|
viewModel.setEditTodoItem(null)
|
||||||
scope
|
scope
|
||||||
.launch { bottomSheetState.hide() }
|
.launch { bottomSheetState.hide() }
|
||||||
.invokeOnCompletion {
|
.invokeOnCompletion {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
package cn.super12138.todo.ui.viewmodels
|
package cn.super12138.todo.ui.viewmodels
|
||||||
|
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import cn.super12138.todo.logic.Repository
|
import cn.super12138.todo.logic.Repository
|
||||||
|
|
@ -10,6 +12,8 @@ import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class MainViewModel : ViewModel() {
|
class MainViewModel : ViewModel() {
|
||||||
val toDos: Flow<List<TodoEntity>> = Repository.getAllTodos()
|
val toDos: Flow<List<TodoEntity>> = Repository.getAllTodos()
|
||||||
|
var selectedEditTodoItem by mutableStateOf<TodoEntity?>(null)
|
||||||
|
private set
|
||||||
val showConfetti = mutableStateOf(false)
|
val showConfetti = mutableStateOf(false)
|
||||||
|
|
||||||
fun addTodo(toDo: TodoEntity) {
|
fun addTodo(toDo: TodoEntity) {
|
||||||
|
|
@ -27,4 +31,8 @@ class MainViewModel : ViewModel() {
|
||||||
fun playConfetti() {
|
fun playConfetti() {
|
||||||
showConfetti.value = true
|
showConfetti.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setEditTodoItem(toDo: TodoEntity?) {
|
||||||
|
selectedEditTodoItem = toDo
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue