From 2a3f10a151109fb7c8848b7ee214179c907ca089 Mon Sep 17 00:00:00 2001 From: bedirhan Date: Tue, 27 Aug 2024 16:39:40 +0300 Subject: [PATCH] changed exercises screen structure --- .../app/feature/exercises/ExercisesScreen.kt | 25 +++---------------- .../navigation/ExercisesNavigation.kt | 23 ++++++++++++++++- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/feature/exercises/src/main/java/com/lifting/app/feature/exercises/ExercisesScreen.kt b/feature/exercises/src/main/java/com/lifting/app/feature/exercises/ExercisesScreen.kt index 9ec2938..9aebdb9 100644 --- a/feature/exercises/src/main/java/com/lifting/app/feature/exercises/ExercisesScreen.kt +++ b/feature/exercises/src/main/java/com/lifting/app/feature/exercises/ExercisesScreen.kt @@ -11,13 +11,9 @@ import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel -import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.lifting.app.core.designsystem.LiftingTheme import com.lifting.app.core.model.ExerciseWithInfo import com.lifting.app.core.ui.CollapsingToolBarScaffold @@ -33,27 +29,14 @@ import me.onebone.toolbar.rememberCollapsingToolbarScaffoldState @Composable internal fun ExercisesScreen( modifier: Modifier = Modifier, - viewModel: ExercisesViewModel = hiltViewModel(), - onAddClick: () -> Unit + state: ExercisesUIState, + onEvent: (ExercisesUIEvent) -> Unit ) { - val exercisesUIState: ExercisesUIState by viewModel.state.collectAsStateWithLifecycle() - val exercisesUIEffect = viewModel.effect - val results by viewModel.exercises.collectAsStateWithLifecycle(initialValue = null) - - LaunchedEffect(exercisesUIEffect) { - exercisesUIEffect.collect { effect -> - when (effect) { - ExercisesUIEffect.NavigateToAddExercise -> onAddClick() - } - } - } - ExercisesScreenContent( modifier = modifier, - state = exercisesUIState, - onEvent = viewModel::setEvent, + state = state, + onEvent = onEvent, ) - } @Composable diff --git a/feature/exercises/src/main/java/com/lifting/app/feature/exercises/navigation/ExercisesNavigation.kt b/feature/exercises/src/main/java/com/lifting/app/feature/exercises/navigation/ExercisesNavigation.kt index 635d76c..1df545d 100644 --- a/feature/exercises/src/main/java/com/lifting/app/feature/exercises/navigation/ExercisesNavigation.kt +++ b/feature/exercises/src/main/java/com/lifting/app/feature/exercises/navigation/ExercisesNavigation.kt @@ -1,10 +1,16 @@ package com.lifting.app.feature.exercises.navigation +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.hilt.navigation.compose.hiltViewModel +import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable import com.lifting.app.core.navigation.screens.LiftingScreen import com.lifting.app.feature.exercises.ExercisesScreen +import com.lifting.app.feature.exercises.ExercisesUIEffect +import com.lifting.app.feature.exercises.ExercisesViewModel /** * Created by bedirhansaricayir on 29.07.2024 @@ -18,8 +24,23 @@ fun NavGraphBuilder.exercisesScreen( onAddClick: () -> Unit ) { composable { + + val viewModel: ExercisesViewModel = hiltViewModel() + val state by viewModel.state.collectAsStateWithLifecycle() + val effect = viewModel.effect + val results by viewModel.exercises.collectAsStateWithLifecycle() + + LaunchedEffect(effect) { + effect.collect { effect -> + when (effect) { + ExercisesUIEffect.NavigateToAddExercise -> onAddClick() + } + } + } + ExercisesScreen( - onAddClick = onAddClick + state = state, + onEvent = viewModel::setEvent ) } } \ No newline at end of file