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