Improve previews
This commit is contained in:
parent
91e92a5cc4
commit
161402d501
2 changed files with 25 additions and 20 deletions
|
|
@ -17,6 +17,7 @@
|
||||||
package io.element.android.libraries.designsystem.theme.components
|
package io.element.android.libraries.designsystem.theme.components
|
||||||
|
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.CheckCircle
|
import androidx.compose.material.icons.filled.CheckCircle
|
||||||
import androidx.compose.material.icons.filled.RadioButtonUnchecked
|
import androidx.compose.material.icons.filled.RadioButtonUnchecked
|
||||||
|
|
@ -55,18 +56,23 @@ fun IconToggleButton(
|
||||||
|
|
||||||
@Preview(group = PreviewGroup.Toggles)
|
@Preview(group = PreviewGroup.Toggles)
|
||||||
@Composable
|
@Composable
|
||||||
internal fun IconToggleButtonPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
internal fun IconToggleButtonCheckedPreview() = ElementThemedPreview(vertical = false) { ContentToPreview(true) }
|
||||||
|
|
||||||
|
@Preview(group = PreviewGroup.Toggles)
|
||||||
|
@Composable
|
||||||
|
internal fun IconToggleButtonUncheckedPreview() = ElementThemedPreview(vertical = false) { ContentToPreview(false) }
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ContentToPreview() {
|
private fun ContentToPreview(defaultCheck: Boolean) {
|
||||||
var checked by remember { mutableStateOf(false) }
|
var checked by remember { mutableStateOf(defaultCheck) }
|
||||||
IconToggleButton(
|
val icon: @Composable () -> Unit = {
|
||||||
checked = checked,
|
|
||||||
onCheckedChange = { checked = !checked },
|
|
||||||
) {
|
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = if (checked) Icons.Default.CheckCircle else Icons.Default.RadioButtonUnchecked,
|
imageVector = if (checked) Icons.Default.CheckCircle else Icons.Default.RadioButtonUnchecked,
|
||||||
contentDescription = "IconToggleButton"
|
contentDescription = "IconToggleButton"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Column {
|
||||||
|
IconToggleButton(checked = checked, enabled = true, onCheckedChange = { checked = !checked }, content = icon)
|
||||||
|
IconToggleButton(checked = checked, enabled = false, onCheckedChange = { checked = !checked }, content = icon)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,16 +17,16 @@
|
||||||
package io.element.android.libraries.designsystem.theme.components
|
package io.element.android.libraries.designsystem.theme.components
|
||||||
|
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
|
||||||
import androidx.compose.material3.RadioButtonColors
|
import androidx.compose.material3.RadioButtonColors
|
||||||
import androidx.compose.material3.RadioButtonDefaults
|
import androidx.compose.material3.RadioButtonDefaults
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
|
||||||
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
|
import io.element.android.libraries.designsystem.preview.ElementThemedPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
import io.element.android.libraries.designsystem.preview.PreviewGroup
|
||||||
import io.element.android.libraries.theme.ElementTheme
|
import io.element.android.libraries.theme.ElementTheme
|
||||||
|
|
@ -63,18 +63,17 @@ internal fun compoundRadioButtonColors(): RadioButtonColors {
|
||||||
|
|
||||||
@Preview(group = PreviewGroup.Toggles)
|
@Preview(group = PreviewGroup.Toggles)
|
||||||
@Composable
|
@Composable
|
||||||
internal fun RadioButtonPreview() = ElementThemedPreview(vertical = false) { ContentToPreview() }
|
internal fun RadioButtonCheckedPreview() = ElementThemedPreview(vertical = false) { ContentToPreview(true) }
|
||||||
|
|
||||||
|
@Preview(group = PreviewGroup.Toggles)
|
||||||
|
@Composable
|
||||||
|
internal fun RadioButtonUncheckedPreview() = ElementThemedPreview(vertical = false) { ContentToPreview(false) }
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ContentToPreview() {
|
private fun ContentToPreview(defaultCheck: Boolean) {
|
||||||
|
var checked by remember { mutableStateOf(defaultCheck) }
|
||||||
Column {
|
Column {
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
RadioButton(selected = checked, enabled = true, onClick = { checked = !checked })
|
||||||
RadioButton(selected = false, onClick = {})
|
RadioButton(selected = checked, enabled = false, onClick = { checked = !checked })
|
||||||
RadioButton(selected = false, enabled = false, onClick = {})
|
|
||||||
}
|
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(6.dp)) {
|
|
||||||
RadioButton(selected = true, onClick = {})
|
|
||||||
RadioButton(selected = true, enabled = false, onClick = {})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue