secant-android-wallet/ui-design-lib/src/main/java/co/electriccoin/zcash/ui/design/component/Chip.kt

115 lines
3.1 KiB
Kotlin
Raw Normal View History

package co.electriccoin.zcash.ui.design.component
2021-11-08 09:31:10 -08:00
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.border
2021-11-08 09:31:10 -08:00
import androidx.compose.foundation.layout.padding
2022-02-21 06:33:40 -08:00
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
2021-11-08 09:31:10 -08:00
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
2023-08-04 04:01:16 -07:00
import androidx.compose.ui.graphics.RectangleShape
2021-12-09 12:21:30 -08:00
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.text.style.TextOverflow
2021-11-08 09:31:10 -08:00
import androidx.compose.ui.tooling.preview.Preview
import co.electriccoin.zcash.spackle.model.Index
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
2021-11-08 09:31:10 -08:00
@Preview
@Composable
private fun ComposableChipPreview() {
ZcashTheme(forceDarkMode = false) {
Chip("route")
}
}
@Preview
@Composable
private fun ComposableChipIndexedPreview() {
ZcashTheme(forceDarkMode = false) {
ChipIndexed(Index(0), "edict")
2021-11-08 09:31:10 -08:00
}
}
@Preview
@Composable
private fun ComposableLongChipPreview() {
ZcashTheme(forceDarkMode = false) {
ChipIndexed(Index(1), "a_very_long_seed_word_that_does_not_fit_into_the_chip_and_thus_needs_to_be_truncated")
}
}
@Preview
@Composable
private fun ComposableChipOnSurfacePreview() {
ZcashTheme(forceDarkMode = false) {
ChipOnSurface("ribbon")
}
}
2021-11-08 09:31:10 -08:00
@Composable
fun Chip(
text: String,
modifier: Modifier = Modifier
) {
Text(
text = text,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSecondary,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
modifier = modifier.then(Modifier.testTag(CommonTag.CHIP))
)
}
@Composable
fun ChipIndexed(
2021-11-08 09:31:10 -08:00
index: Index,
text: String,
2022-06-22 02:48:19 -07:00
modifier: Modifier = Modifier
2021-11-08 09:31:10 -08:00
) {
Text(
text = "${index.value + 1}. $text",
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSecondary,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
modifier = modifier.then(Modifier.testTag(CommonTag.CHIP))
)
2021-11-08 09:31:10 -08:00
}
@Composable
fun ChipOnSurface(
text: String,
modifier: Modifier = Modifier
) {
Surface(
2023-08-04 04:01:16 -07:00
shape = RectangleShape,
modifier =
modifier
.padding(horizontal = ZcashTheme.dimens.spacingTiny)
.border(
border =
BorderStroke(
width = ZcashTheme.dimens.chipStroke,
color = ZcashTheme.colors.layoutStroke
)
),
color = MaterialTheme.colorScheme.secondary,
shadowElevation = ZcashTheme.dimens.chipShadowElevation,
) {
Text(
text = text,
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onSecondary,
modifier =
Modifier
.padding(
vertical = ZcashTheme.dimens.spacingSmall,
horizontal = ZcashTheme.dimens.spacingDefault
)
.testTag(CommonTag.CHIP)
)
}
}