Updated on 2026-08-14

This commit is contained in:
Tangem 2025-05-22 11:14:14 +03:00
commit be499acaba
5 changed files with 38 additions and 30 deletions

View file

@ -2,10 +2,8 @@ package com.tangem.tap.features.home
import androidx.activity.compose.BackHandler
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
@ -13,7 +11,7 @@ import com.arkivanov.essenty.lifecycle.subscribe
import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.core.decompose.model.getOrCreateModel
import com.tangem.core.ui.components.SystemBarsIconsDisposable
import com.tangem.core.ui.res.LocalRootBackgroundColor
import com.tangem.core.ui.utils.ChangeRootBackgroundColorEffect
import com.tangem.core.ui.utils.findActivity
import com.tangem.tap.common.redux.AppState
import com.tangem.tap.features.home.api.HomeComponent
@ -65,17 +63,7 @@ internal class DefaultHomeComponent @AssistedInject constructor(
onShopButtonClick = model::onShopClick,
onSearchTokensClick = model::onSearchClick,
)
val rootBackgroundColor = LocalRootBackgroundColor.current
val previousColor = remember { rootBackgroundColor.value }
val storiesBackgroundColor = Color(color = 0xFF010101)
DisposableEffect(Unit) {
rootBackgroundColor.value = storiesBackgroundColor
onDispose {
rootBackgroundColor.value = previousColor
}
}
ChangeRootBackgroundColorEffect(Color(color = 0xFF010101))
}
override fun newState(state: HomeState) {

View file

@ -107,7 +107,7 @@ fun TangemTheme(
CompositionLocalProvider(
LocalTangemShimmer provides TangemShimmer,
LocalMainBottomSheetColor provides remember { mutableStateOf(Color.Unspecified) },
LocalRootBackgroundColor provides remember { mutableStateOf(rootBackgroundColor) },
LocalRootBackgroundColor provides remember(rootBackgroundColor) { mutableStateOf(rootBackgroundColor) },
LocalTextSelectionColors provides TangemTextSelectionColors,
) {
ProvideTextStyle(

View file

@ -0,0 +1,31 @@
package com.tangem.core.ui.utils
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.graphics.Color
import com.tangem.core.ui.res.LocalRootBackgroundColor
@Composable
fun ChangeRootBackgroundColorEffect(color: Color) {
var rootBackgroundColor by LocalRootBackgroundColor.current
var previousColor by remember { mutableStateOf(rootBackgroundColor) }
DisposableEffect(color) {
rootBackgroundColor = color
onDispose {
rootBackgroundColor = previousColor
}
}
LaunchedEffect(rootBackgroundColor) {
if (rootBackgroundColor != color) {
previousColor = rootBackgroundColor
rootBackgroundColor = color
}
}
}

View file

@ -21,8 +21,8 @@ internal inline fun OnboardingEntry(
Column(
modifier = modifier
.fillMaxSize()
.statusBarsPadding()
.background(TangemTheme.colors.background.primary),
.background(TangemTheme.colors.background.primary)
.statusBarsPadding(),
) {
stepperContent(Modifier.fillMaxWidth())

View file

@ -1,16 +1,14 @@
package com.tangem.feature.stories.impl
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.Stable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.tangem.common.ui.swapStoriesScreen.SwapStoriesScreen
import com.tangem.core.decompose.context.AppComponentContext
import com.tangem.core.decompose.model.getOrCreateModel
import com.tangem.core.ui.res.LocalRootBackgroundColor
import com.tangem.core.ui.res.TangemColorPalette
import com.tangem.core.ui.utils.ChangeRootBackgroundColorEffect
import com.tangem.feature.stories.api.StoriesComponent
import com.tangem.feature.stories.impl.model.StoriesModel
import dagger.assisted.Assisted
@ -29,16 +27,7 @@ internal class DefaultStoriesComponent @AssistedInject constructor(
override fun Content(modifier: Modifier) {
val state = model.state.collectAsStateWithLifecycle()
SwapStoriesScreen(state.value)
val rootBackgroundColor = LocalRootBackgroundColor.current
val previousColor = remember { rootBackgroundColor.value }
DisposableEffect(Unit) {
rootBackgroundColor.value = TangemColorPalette.Black
onDispose {
rootBackgroundColor.value = previousColor
}
}
ChangeRootBackgroundColorEffect(TangemColorPalette.Black)
}
@AssistedFactory