EnumField
inline fun <E : Enum<E>> EnumField(label: String, initialValue: E, type: SelectableField.Type = DROPDOWN, noinline choiceLabel: (E) -> String = { it.name }): SelectableField<E>
Create a SelectableField from enum class values.
This function automatically provides serialization support for enum types.
Usage
enum class ButtonVariant { Primary, Secondary, Tertiary }
@Preview
@Composable
fun ButtonPreview() = PreviewLab {
val variant: ButtonVariant = fieldValue {
EnumField(
label = "Variant",
initialValue = ButtonVariant.Primary
)
}
MyButton(variant = variant)
}
// With custom labels
@Preview
@Composable
fun LayoutPreview() = PreviewLab {
val direction: LayoutDirection = fieldValue {
EnumField(
label = "Direction",
initialValue = LayoutDirection.Ltr,
choiceLabel = { if (it == LayoutDirection.Ltr) "Left to Right" else "Right to Left" }
)
}
MyLayout(layoutDirection = direction)
}Content copied to clipboard