Skip to content

Commit

Permalink
changed exercises screen structure
Browse files Browse the repository at this point in the history
  • Loading branch information
bedirhansaricayir committed Aug 27, 2024
1 parent e6c68cf commit 2a3f10a
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -18,8 +24,23 @@ fun NavGraphBuilder.exercisesScreen(
onAddClick: () -> Unit
) {
composable<LiftingScreen.Exercises> {

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
)
}
}

0 comments on commit 2a3f10a

Please sign in to comment.