refactor: 将进度页面和主页面解耦
This commit is contained in:
parent
4bfa2c4970
commit
3143232588
2 changed files with 10 additions and 10 deletions
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue