package com.suno.android.common_ui.extensions import androidx.compose.foundation.background import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.consumeWindowInsets import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Shape import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.unit.dp import com.suno.android.common_ui.animations.shimmerBrush import com.suno.android.common_ui.theme.ExtendedTheme @Composable fun Modifier.xBottomPlayerPadding( isPlayerVisible: Boolean? = false, ): Modifier = this.conditional( condition = (isPlayerVisible == true), ifTrue = { this.padding(bottom = 70.dp) }, ifFalse = { this }, ) @Composable fun Modifier.conditional( condition: Boolean, ifTrue: @Composable (Modifier.() -> Modifier)? = null, ifFalse: @Composable (Modifier.() -> Modifier)? = null, ) = if (condition) { ifTrue?.invoke(this) } else { ifFalse?.invoke(this) } ?: this @Composable fun Modifier.xLoadingShimmerBackground( shape: Shape = MaterialTheme.shapes.medium, ): Modifier { val shimmerBrush = shimmerBrush(baseColor = ExtendedTheme.colors.backgroundTertiary) return background( brush = shimmerBrush, shape = shape, ) } fun Modifier.windowInsetsPadding( padding: PaddingValues, ) = this.padding(padding) .consumeWindowInsets(padding) fun Modifier.consumeTouchEvents() = this.pointerInput(Unit) {}