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 ->
Column(modifier = Modifier.padding(innerPadding)) {
ProgressFragment(
viewModel = viewModel,
totalTasks = toDoList.value.size,
completedTasks = toDoList.value.count { it.isCompleted },
modifier = Modifier
.weight(2f)
.fillMaxSize()

View file

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