d49ec41f3a
* Don't compose category page unnecessarily * Remove unnecessary library pager recompose Defer and remember the "currentPage" state read since it's only needed when the pager is composed for the first time. * Badge opts * Sync text style with previous impl Also avoid reallocating by using copy
49 lines
1.4 KiB
Kotlin
49 lines
1.4 KiB
Kotlin
package eu.kanade.presentation.components
|
|
|
|
import androidx.compose.foundation.background
|
|
import androidx.compose.foundation.layout.Row
|
|
import androidx.compose.foundation.layout.RowScope
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.draw.clip
|
|
import androidx.compose.ui.graphics.Color
|
|
import androidx.compose.ui.graphics.RectangleShape
|
|
import androidx.compose.ui.graphics.Shape
|
|
import androidx.compose.ui.text.font.FontWeight
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
@Composable
|
|
fun BadgeGroup(
|
|
modifier: Modifier = Modifier,
|
|
shape: Shape = RoundedCornerShape(4.dp),
|
|
content: @Composable RowScope.() -> Unit,
|
|
) {
|
|
Row(modifier = modifier.clip(shape)) {
|
|
content()
|
|
}
|
|
}
|
|
|
|
@Composable
|
|
fun Badge(
|
|
text: String,
|
|
color: Color = MaterialTheme.colorScheme.secondary,
|
|
textColor: Color = MaterialTheme.colorScheme.onSecondary,
|
|
shape: Shape = RectangleShape,
|
|
) {
|
|
Text(
|
|
text = text,
|
|
modifier = Modifier
|
|
.clip(shape)
|
|
.background(color)
|
|
.padding(horizontal = 3.dp, vertical = 1.dp),
|
|
color = textColor,
|
|
fontWeight = FontWeight.Medium,
|
|
maxLines = 1,
|
|
style = MaterialTheme.typography.bodySmall,
|
|
)
|
|
}
|