更新
This commit is contained in:
@@ -37,6 +37,7 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.taskttl.core.ui.LoadingScreen
|
||||
import com.taskttl.data.state.TaskEffect
|
||||
import com.taskttl.data.state.TaskIntent
|
||||
import com.taskttl.data.viewmodel.TaskViewModel
|
||||
@@ -228,5 +229,6 @@ fun TaskDetailScreen(
|
||||
}
|
||||
|
||||
}
|
||||
if (state.isLoading) LoadingScreen()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,6 +38,9 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.taskttl.core.routes.Routes
|
||||
import com.taskttl.core.ui.LoadingScreen
|
||||
import com.taskttl.core.utils.ToastUtils
|
||||
import com.taskttl.data.local.model.Category
|
||||
import com.taskttl.data.local.model.Task
|
||||
import com.taskttl.data.local.model.TaskPriority
|
||||
@@ -78,6 +81,18 @@ fun TaskEditorScreen(
|
||||
viewModel: TaskViewModel = koinViewModel()
|
||||
) {
|
||||
|
||||
LaunchedEffect(Unit) {
|
||||
viewModel.effects.collect { effect ->
|
||||
when (effect) {
|
||||
is TaskEffect.ShowMessage -> {
|
||||
ToastUtils.show(effect.message)
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(taskId) {
|
||||
taskId?.let { viewModel.handleIntent(TaskIntent.GetTaskById(it)) }
|
||||
}
|
||||
@@ -277,5 +292,6 @@ fun TaskEditorScreen(
|
||||
)
|
||||
}
|
||||
}
|
||||
if (state.isLoading) LoadingScreen()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,6 +53,9 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.NavHostController
|
||||
import com.taskttl.core.routes.Routes
|
||||
import com.taskttl.core.ui.ActionButtonListItem
|
||||
import com.taskttl.core.ui.ErrorDialog
|
||||
import com.taskttl.core.ui.LoadingScreen
|
||||
import com.taskttl.core.utils.ToastUtils
|
||||
import com.taskttl.data.local.model.Task
|
||||
import com.taskttl.data.state.TaskEffect
|
||||
import com.taskttl.data.state.TaskIntent
|
||||
@@ -90,6 +93,10 @@ fun TaskScreen(
|
||||
LaunchedEffect(Unit) {
|
||||
viewModel.effects.collect { effect ->
|
||||
when (effect) {
|
||||
is TaskEffect.ShowMessage -> {
|
||||
ToastUtils.show(effect.message)
|
||||
}
|
||||
|
||||
is TaskEffect.NavigateToTaskDetail -> {
|
||||
navController.navigate(Routes.Main.Task.TaskDetail(effect.taskId))
|
||||
}
|
||||
@@ -100,7 +107,10 @@ fun TaskScreen(
|
||||
}
|
||||
|
||||
state.error?.let { error ->
|
||||
LaunchedEffect(error) { viewModel.handleIntent(TaskIntent.ClearError) }
|
||||
ErrorDialog(
|
||||
errorMessage = state.error,
|
||||
onDismiss = { viewModel.handleIntent(TaskIntent.ClearError) }
|
||||
)
|
||||
}
|
||||
|
||||
Box(
|
||||
@@ -207,7 +217,7 @@ fun TaskScreen(
|
||||
item { Spacer(Modifier) }
|
||||
itemsIndexed(
|
||||
state.filteredTasks,
|
||||
key = { index, item -> item.title }) { index, task ->
|
||||
key = { index, item -> item.id }) { index, task ->
|
||||
var isOpen by remember { mutableStateOf(false) }
|
||||
|
||||
TaskCardItem(
|
||||
@@ -248,6 +258,7 @@ fun TaskScreen(
|
||||
contentDescription = stringResource(Res.string.title_add_task)
|
||||
)
|
||||
}
|
||||
if (state.isLoading) LoadingScreen()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user