Updated on 2026-08-14

This commit is contained in:
Tangem 2026-04-06 09:49:59 +02:00
parent 843ec3d04e
commit 7a197ec6c9
24 changed files with 499 additions and 235 deletions

View file

@ -12,9 +12,11 @@ import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.tangem.core.ui.components.haze.hazeEffectTangem
import com.tangem.core.ui.res.LocalHazeState
import com.tangem.core.ui.res.LocalPowerSavingState
import com.tangem.core.ui.res.TangemTheme
import dev.chrisbanes.haze.HazeProgressive
import dev.chrisbanes.haze.HazeState
import dev.chrisbanes.haze.HazeStyle
import dev.chrisbanes.haze.HazeTint
@ -62,7 +64,11 @@ fun BottomFade(gradientBrush: Brush, modifier: Modifier = Modifier) {
* but with a vertical blur.
*/
@Composable
fun BottomFadeWithBlur(backgroundColor: Color, modifier: Modifier = Modifier) {
fun BottomFadeWithBlur(
backgroundColor: Color,
modifier: Modifier = Modifier,
hazeState: HazeState = LocalHazeState.current,
) {
val bottomBarHeight = with(LocalDensity.current) { WindowInsets.systemBars.getBottom(this).toDp() }
val isPowerSavingState by LocalPowerSavingState.current.isPowerSavingModeEnabled.collectAsState()
@ -76,19 +82,9 @@ fun BottomFadeWithBlur(backgroundColor: Color, modifier: Modifier = Modifier) {
.fillMaxWidth()
.height(TangemTheme.dimens.size100 + bottomBarHeight)
.hazeEffectTangem(
style = HazeStyle(
blurRadius = 20.dp,
tint = HazeTint(
brush = Brush.verticalGradient(
colors = listOf(
Color.Transparent,
backgroundColor,
),
),
),
backgroundColor = Color.Transparent,
),
state = hazeState,
) {
blurRadius = 20.dp
progressive = HazeProgressive.verticalGradient(
startIntensity = 0f,
endIntensity = 1f,

View file

@ -1,5 +1,6 @@
package com.tangem.core.ui.decompose
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable
import androidx.compose.runtime.State
@ -27,7 +28,9 @@ interface ComposableModularBottomSheetContentComponent {
* Renders the main content of the bottom sheet.
* @param bottomSheetState The current state of the bottom sheet. Useful for tracking visibility
* (e.g., for analytics or lifecycle effects when the sheet is [BottomSheetState.EXPANDED]).
* @param contentPadding Padding to apply as inner scroll offset in scrollable containers,
* allowing content to scroll under an overlaying top bar. Defaults to no padding.
*/
@Composable
fun Content(bottomSheetState: State<BottomSheetState>, modifier: Modifier)
fun Content(bottomSheetState: State<BottomSheetState>, contentPadding: PaddingValues, modifier: Modifier)
}