refactor: 将进度页面和主页面解耦

This commit is contained in:
Super12138 2025-01-11 22:37:04 +08:00
parent 4bfa2c4970
commit 3143232588
2 changed files with 10 additions and 10 deletions

View file

@ -95,7 +95,8 @@ fun MainPage(viewModel: MainViewModel, modifier: Modifier = Modifier) {
) { innerPadding -> ) { innerPadding ->
Column(modifier = Modifier.padding(innerPadding)) { Column(modifier = Modifier.padding(innerPadding)) {
ProgressFragment( ProgressFragment(
viewModel = viewModel, totalTasks = toDoList.value.size,
completedTasks = toDoList.value.count { it.isCompleted },
modifier = Modifier modifier = Modifier
.weight(2f) .weight(2f)
.fillMaxSize() .fillMaxSize()

View file

@ -10,21 +10,20 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ProgressIndicatorDefaults import androidx.compose.material3.ProgressIndicatorDefaults
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import cn.super12138.todo.ui.viewmodels.MainViewModel
@Composable @Composable
fun ProgressFragment(viewModel: MainViewModel, modifier: Modifier = Modifier) { fun ProgressFragment(
val toDoList = viewModel.toDos.collectAsState(initial = emptyList()) totalTasks: Int,
val totalTask = toDoList.value.size completedTasks: Int,
val completedTasks = toDoList.value.count { it.isCompleted } modifier: Modifier = Modifier
val progress = if (toDoList.value.isNotEmpty()) { ) {
completedTasks / totalTask.toFloat() val progress = if (totalTasks != 0) {
completedTasks / totalTasks.toFloat()
} else { } else {
// 没有任务时 // 没有任务时
0f 0f
@ -59,7 +58,7 @@ fun ProgressFragment(viewModel: MainViewModel, modifier: Modifier = Modifier) {
) )
) )
Text( Text(
text = totalTask.toString(), text = totalTasks.toString(),
style = MaterialTheme.typography.displayMedium.copy( style = MaterialTheme.typography.displayMedium.copy(
fontWeight = FontWeight.Bold fontWeight = FontWeight.Bold
) )