🚀 ExpandingTransition for nested settings

* Show some settings only when meeting requirements for it to affect the app at this moment (e.g. show Brightness slider ONLY when Custom Brightness switch is set to true)
This commit is contained in:
Acclorite 2024-12-25 11:11:26 +02:00
parent ba2104ad05
commit 1bc4dcf6a9
3 changed files with 41 additions and 32 deletions

View file

@ -8,12 +8,14 @@ import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle
import ua.acclorite.book_story.ui.main.MainEvent import ua.acclorite.book_story.ui.main.MainEvent
import ua.acclorite.book_story.ui.main.MainModel import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.theme.ExpandingTransition
@Composable @Composable
fun PerceptionExpanderPaddingOption() { fun PerceptionExpanderPaddingOption() {
val mainModel = hiltViewModel<MainModel>() val mainModel = hiltViewModel<MainModel>()
val state = mainModel.state.collectAsStateWithLifecycle() val state = mainModel.state.collectAsStateWithLifecycle()
ExpandingTransition(visible = state.value.perceptionExpander) {
SliderWithTitle( SliderWithTitle(
value = state.value.perceptionExpanderPadding to "pt", value = state.value.perceptionExpanderPadding to "pt",
fromValue = 0, fromValue = 0,
@ -26,3 +28,4 @@ fun PerceptionExpanderPaddingOption() {
} }
) )
} }
}

View file

@ -8,12 +8,14 @@ import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle
import ua.acclorite.book_story.ui.main.MainEvent import ua.acclorite.book_story.ui.main.MainEvent
import ua.acclorite.book_story.ui.main.MainModel import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.theme.ExpandingTransition
@Composable @Composable
fun PerceptionExpanderThicknessOption() { fun PerceptionExpanderThicknessOption() {
val mainModel = hiltViewModel<MainModel>() val mainModel = hiltViewModel<MainModel>()
val state = mainModel.state.collectAsStateWithLifecycle() val state = mainModel.state.collectAsStateWithLifecycle()
ExpandingTransition(visible = state.value.perceptionExpander) {
SliderWithTitle( SliderWithTitle(
value = state.value.perceptionExpanderThickness to "pt", value = state.value.perceptionExpanderThickness to "pt",
fromValue = 1, fromValue = 1,
@ -26,3 +28,4 @@ fun PerceptionExpanderThicknessOption() {
} }
) )
} }
}

View file

@ -8,12 +8,14 @@ import ua.acclorite.book_story.R
import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle import ua.acclorite.book_story.presentation.core.components.settings.SliderWithTitle
import ua.acclorite.book_story.ui.main.MainEvent import ua.acclorite.book_story.ui.main.MainEvent
import ua.acclorite.book_story.ui.main.MainModel import ua.acclorite.book_story.ui.main.MainModel
import ua.acclorite.book_story.ui.theme.ExpandingTransition
@Composable @Composable
fun ScreenBrightnessOption() { fun ScreenBrightnessOption() {
val mainModel = hiltViewModel<MainModel>() val mainModel = hiltViewModel<MainModel>()
val state = mainModel.state.collectAsStateWithLifecycle() val state = mainModel.state.collectAsStateWithLifecycle()
ExpandingTransition(visible = state.value.customScreenBrightness) {
SliderWithTitle( SliderWithTitle(
value = state.value.screenBrightness to "", value = state.value.screenBrightness to "",
toValue = 100, toValue = 100,
@ -25,3 +27,4 @@ fun ScreenBrightnessOption() {
} }
) )
} }
}