parent
abae9bf37d
commit
b6620434b3
@ -1,44 +0,0 @@
|
||||
package tachiyomi.presentation.core.components.material
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.fillMaxHeight
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.material3.DividerDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
const val DIVIDER_ALPHA = 0.2f
|
||||
|
||||
@Composable
|
||||
fun Divider(
|
||||
modifier: Modifier = Modifier,
|
||||
color: Color = DividerDefaults.color,
|
||||
) {
|
||||
Box(
|
||||
modifier
|
||||
.fillMaxWidth()
|
||||
.height(1.dp)
|
||||
.background(color = color)
|
||||
.alpha(DIVIDER_ALPHA),
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun VerticalDivider(
|
||||
modifier: Modifier = Modifier,
|
||||
color: Color = DividerDefaults.color,
|
||||
) {
|
||||
Box(
|
||||
modifier
|
||||
.fillMaxHeight()
|
||||
.width(1.dp)
|
||||
.background(color = color)
|
||||
.alpha(DIVIDER_ALPHA),
|
||||
)
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
package tachiyomi.presentation.core.components.material
|
||||
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material3.OutlinedButton
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
|
||||
val StartItemShape = RoundedCornerShape(topStartPercent = 100, bottomStartPercent = 100)
|
||||
val MiddleItemShape = RoundedCornerShape(0)
|
||||
val EndItemShape = RoundedCornerShape(topEndPercent = 100, bottomEndPercent = 100)
|
||||
|
||||
@Composable
|
||||
fun SegmentedButtons(
|
||||
modifier: Modifier = Modifier,
|
||||
entries: List<String>,
|
||||
selectedIndex: Int,
|
||||
onClick: (Int) -> Unit,
|
||||
) {
|
||||
Row(
|
||||
modifier = modifier,
|
||||
) {
|
||||
entries.mapIndexed { index, label ->
|
||||
val shape = remember(entries, index) {
|
||||
when (index) {
|
||||
0 -> StartItemShape
|
||||
entries.lastIndex -> EndItemShape
|
||||
else -> MiddleItemShape
|
||||
}
|
||||
}
|
||||
|
||||
if (index == selectedIndex) {
|
||||
Button(
|
||||
modifier = Modifier.weight(1f),
|
||||
shape = shape,
|
||||
onClick = { onClick(index) },
|
||||
) {
|
||||
Text(
|
||||
text = label,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
)
|
||||
}
|
||||
} else {
|
||||
OutlinedButton(
|
||||
modifier = Modifier.weight(1f),
|
||||
shape = shape,
|
||||
onClick = { onClick(index) },
|
||||
) {
|
||||
Text(
|
||||
text = label,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@Composable
|
||||
private fun SegmentedButtonsPreview() {
|
||||
Column {
|
||||
SegmentedButtons(
|
||||
entries = listOf(
|
||||
"Day",
|
||||
"Week",
|
||||
"Month",
|
||||
"Year",
|
||||
),
|
||||
selectedIndex = 1,
|
||||
onClick = {},
|
||||
)
|
||||
|
||||
SegmentedButtons(
|
||||
entries = listOf(
|
||||
"Foo",
|
||||
"Bar",
|
||||
),
|
||||
selectedIndex = 1,
|
||||
onClick = {},
|
||||
)
|
||||
}
|
||||
}
|
Loading…
Reference in new issue